> ## Documentation Index
> Fetch the complete documentation index at: https://beebole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom fields: capture extra data on your work

> Create custom fields in Beebole to capture extra data on people, projects, tasks, and time records — six field types with validation and visibility rules.

Custom fields in Beebole add your own data fields to people, projects, tasks, and time records. Use them to capture what Beebole's built-in attributes don't cover — an employee ID on every person, a client reference on each project, or a ticket number on every time entry — and reuse those values as columns in your reports.

<Info>
  Custom fields are available on higher-tier plans. If your subscription doesn't include them, the **Custom Field** entry in Settings shows an upgrade button instead of opening the page.
</Info>

***

## Creating a custom field

<Steps>
  <Step title="Open the Custom Fields settings">
    Click the button with your initials at the bottom of the sidebar, then go to **Settings** > **Custom Field**.
  </Step>

  <Step title="Add the field">
    Click **Add Custom Field**, type a name — for example "Employee ID" or "Cost center" — and click **Add Custom Field** to confirm.
  </Step>

  <Step title="Choose the field type">
    In the **Custom field details** panel, pick a **Field type**: **Text**, **Date**, **Date & time**, **Number**, **URL**, or **Boolean**.
  </Step>

  <Step title="Configure the type's options">
    The options for the selected type appear below it — defaults, limits, validation. Every change is saved automatically.
  </Step>

  <Step title="Choose where the field appears">
    In the **Custom field visibility** panel, turn on **Visible for People**, **Visible for Time Records**, **Visible for Projects**, or **Visible for Tasks**. The field then appears on the matching records.
  </Step>
</Steps>

***

## Field types

Beebole supports six field types, each suited to a different kind of data:

| Type            | Holds                                          | Example use                          |
| --------------- | ---------------------------------------------- | ------------------------------------ |
| **Text**        | Free text, or a pick list of predefined values | Employee ID, client reference        |
| **Number**      | Numeric values, with optional prefix or suffix | Mileage, purchase order amount       |
| **Date**        | A calendar date                                | Contract start, certification expiry |
| **Date & time** | A date with a time of day                      | Shift start, incident time           |
| **URL**         | A web link                                     | Link to an external tracker          |
| **Boolean**     | A yes/no value with customizable labels        | Remote worker, billable indicator    |

You can change a field's **Field type** later from the **Custom field details** panel — the type-specific options switch accordingly.

***

## Field options and validation

Each type comes with its own options, all edited in the **Custom field details** panel and saved automatically:

| Type            | Options                                                                                                                                                       |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Text**        | **Minimum length**, **Maximum length**, **Validation pattern (regex)**, **Placeholder text**, and **Use predefined values** with a list of **Allowed values** |
| **Number**      | **Minimum value**, **Maximum value**, **Step size**, **Allow decimal numbers**, **Decimal places**, **Prefix**, **Suffix**                                    |
| **Date**        | **Earliest date**, **Latest date**                                                                                                                            |
| **Date & time** | **Earliest date & time**, **Latest date & time**                                                                                                              |
| **URL**         | **Placeholder text**                                                                                                                                          |
| **Boolean**     | **Label for 'Yes'**, **Label for 'No'**                                                                                                                       |

Custom fields don't carry default values — a field starts empty (or shows its **Placeholder text**) until someone fills it in.

Turn on **Use predefined values** to restrict a text field to a fixed list: add each entry under **Allowed values**, and users pick a value from that list instead of typing freely.

<Info>
  Beebole validates values as people enter them. An entry outside the allowed range or format is flagged with an error and not saved until corrected.
</Info>

***

## Choosing where a field appears

<Steps>
  <Step title="Open the Custom Fields page">
    Go to **Settings** > **Custom Fields**.
  </Step>

  <Step title="Add a new field">
    Click the **\[+]** button. Enter a **Name** for the field (e.g., "Employee ID", "Cost Center").
  </Step>

  <Step title="Choose the field type">
    Select the appropriate type from the **Type** dropdown: **Text**, **Number**, **Date**, **Datetime**, **URL**, or **Boolean**.
  </Step>

  <Step title="Set the entity visibility">
    In the **Custom field visibility** panel, choose where the field appears — **Visible for People**, **Visible for Projects**, **Visible for Tasks**, **Visible for Time Records**, or **Visible for Absence types**. A single field can apply to several.
  </Step>

  <Step title="Configure optional settings">
    Set a **Placeholder text** or validation rules as needed (see sections below). Every change is saved automatically — the field appears on the selected items right away.
  </Step>
</Steps>

The **Custom field visibility** panel controls which items carry the field. Each toggle is saved automatically:

* **Visible for People** — The field appears on every person's profile.
* **Visible for Projects** — Turn it on, then use **Add a category** to choose the project categories where the field applies. Within each category you can tick the hierarchy levels — for example top-level projects only, or their subprojects too.
* **Visible for Tasks** — Turn it on, then choose the task categories where the field applies.
* **Visible for Time Records** — The field appears when filling in a time entry's details on the timesheet. Narrow it down with **Project categories** and **Plannings**, and turn on **Absences** to also show the field on time-off entries. A field scoped to a planning applies to tasks at every level of that planning.
* **Visible for Absence types** — The field appears on each time off type's configuration, for structured data about the types themselves.

***

## Entering values

Once a field is visible for a given type, it appears automatically on every matching record — there is nothing to add one by one. Open a person, project, or task and fill in the field in its **Custom fields** panel; values are saved automatically as you enter them. For time records, open the entry's details on the timesheet and fill in the field there.

***

## Custom fields in reports

Custom field values flow into reporting. When you build a [custom report](/help/documentation/custom-reports), any custom field visible on people, projects, or tasks is available as a column for that type — so a field like a client reference or region becomes a regular report dimension.

***

## Managing custom fields

To manage an existing field, open it in **Settings** > **Custom Field** and click the **⋯** action menu next to its name. The menu offers **Duplicate**, **Rename**, **Archive**, **Unarchive**, and **Delete**.

Archived fields disappear from the list. Click **Show Archived** to display them, then use the **⋯** action menu and **Unarchive** to restore one.

<Warning>
  **Delete** removes the custom field entirely, including the values stored on your people, projects, and tasks. Choose **Archive** instead if you may need the field or its data again.
</Warning>

***

## Related content

<CardGroup cols={2}>
  <Card title="People" icon="users" href="/help/documentation/people">
    Manage the profiles where person-level custom fields appear.
  </Card>

  <Card title="Projects" icon="folder" href="/help/documentation/projects">
    Organize projects into the categories that drive field visibility.
  </Card>

  <Card title="Timesheets" icon="clock" href="/help/documentation/timesheets">
    See where time-record custom fields show up when entering time.
  </Card>

  <Card title="Custom Reports" icon="table-columns" href="/help/documentation/custom-reports">
    Use custom field values as columns in your report layouts.
  </Card>
</CardGroup>

***

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Which field types does Beebole support?">
    Beebole offers six custom field types: **Text**, **Number**, **Date**, **Date & time**, **URL**, and **Boolean**. Each type has its own options, such as length limits and patterns for text or earliest and latest dates for date fields.
  </Accordion>

  <Accordion title="Do custom fields appear on the timesheet?">
    Yes. Turn on **Visible for Time Records** and the field appears when filling in a time entry's details on the timesheet. You can limit it to specific project or task categories, and the **Absences** toggle also shows it on time-off entries.
  </Accordion>

  <Accordion title="Can I restrict a custom field to a list of allowed values?">
    Yes. On a **Text** field, turn on **Use predefined values** and add the entries under **Allowed values**. In Beebole, users then pick from that list instead of typing free text.
  </Accordion>

  <Accordion title="Can I show a custom field only for some project categories?">
    Yes. Under **Visible for Projects**, add only the project categories where the field belongs, and tick the hierarchy levels it should cover. Projects in other categories won't show the field.
  </Accordion>

  <Accordion title="Can I change a custom field's type after creating it?">
    Yes. Open the field in **Settings** > **Custom Field** and pick another **Field type** in the **Custom field details** panel. The type-specific options change with it, so review limits and defaults after switching.
  </Accordion>
</AccordionGroup>
