Custom Fields

Custom fields are designed to help teams add more information to their time entries so companies can run any type of report they need in Excel and better integrate Clockify with their external systems.

For example, custom fields can let you track expenses and reimbursement, number of processed units, mileage, project ID, location, job code, location, equipment used, task status, deal number, date of approval, links to receipts and screenshots… the possibilities and use cases are endless.


Let’s say you want to track location for each entry (provided by user) but also need each time entry to have a separate column for project ID (defined by system) that would feed into your internal system. This is how you’d do it:

Step 1: Define custom fields

In workspace settings, you’d create a custom field for:

  • Location: name the field, choose free-form text field or dropdown (with predefined options) as input type, and make the field editable by anyone;

  • Project ID: name the field, choose text as input type, and make it editable only by admins (you’ll define the actual value later at project level)

Step 2: Set default values

Go to each project’s setting, and define what value each time entry on that project will inherit:

  • If the custom field is not visible in time tracker/timesheet, such as project ID, users won’t be able to see or change them. If it is visible but not editable, users will only be able to see the value once they choose a project.

  • If the custom field is visible and editable, such as location, you can define the default value and user can later override it when tracking time (eg. each entry on a project is X by default, but in some rare cases it’s Z and the user needs to specify that).

Step 3a: Tracking time in Time Tracker

Time tracker will display visible fields in a new row. You can have up to 5 active visible fields at any time.

When a user selects a project, default values will be auto-populated from the project. If a field is editable, user can override value.

Step 3b: Tracking time in Timesheet

Timesheet would gain support for description, tags, and custom fields. The support would be very subtle and super simple to use.

Users would enter time in a cell, just like before. Only once they hover over a cell that contains time, three dots will appear. Once you click on them, you’d get a popup where you can enter description, tag, and visible custom fields (eg. location, but not project ID).

Step 4: Export reports

Once you go to Detailed report, you’d see visible custom fields on each time entry (just like in Time Tracker / Timesheet).

When you export the report to CSV or Excel, you’d get values of all custom fields for each entry (eg. location and project ID for each entry).

This would greatly help with system integration. For example, if you have a project ID generated in your own system, you’d enter that ID in the project and all time entries will inherit it as metadata, making data import and export between systems super easy.

You’ll also be able to filter reports by custom fields: if it’s a text field, you can type the search query; if it’s number, you can filter by greater or lower than x; if it’s checkbox/link, you can filter by yes/no; and if it’s dropdown, you can filter by value(s).

New: Set visibility by project

I’d prefer to control the relevancy/visibility of custom fields by project, and it’s not clear to me that it will be possible given the details you provided. Ticket number and project ID or cost center fields, for example, wouldn’t be relevant to all projects, so I’d prefer to not display those to users when they’ve selected a project where it’s not relevant. It seems custom field visibility is only controlled at the workspace level in this design, though.

I think, ideally, selecting the project/task is the first thing a user would have to do before they complete the other fields—this way the time entry form has context for which fields are relevant to that specific project.

1 Like