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

# Extend records with custom fields in Novala

> Add your own data fields to companies, contacts, equipment, and more. Custom fields appear in record views, filters, and API responses.

Custom fields let you capture information that matters to your business but isn't part of Novala's built-in record structure. You might add a contract number to companies, a certification date to equipment, or a lead source category to contacts. Once defined, custom fields appear in the record detail view alongside standard fields and are available for filtering and export.

## Navigate to Custom Fields

Go to **Settings → Custom Fields**. Use the dropdown at the top right to switch between record types and manage fields for each one.

## Supported record types

You can define custom fields for the following record types:

* **Companies**
* **Contacts**
* **Leads**
* **Applications**
* **Equipment**
* **Deals**
* **Quotes**
* **Services**
* **Invoices**

## Field types

When you create a custom field, you choose a field type that determines how the data is entered and stored:

| Type             | Description                                           |
| ---------------- | ----------------------------------------------------- |
| **Text**         | Free-form single-line text                            |
| **Number**       | Numeric values                                        |
| **Date**         | Date picker                                           |
| **Yes/No**       | Boolean toggle                                        |
| **Dropdown**     | Single selection from a list of options you define    |
| **Multi-Select** | Multiple selections from a list of options you define |
| **URL**          | Web address with link formatting                      |
| **Email**        | Email address with mailto formatting                  |
| **Phone**        | Phone number                                          |

## Create a custom field

<Steps>
  <Step title="Select a record type">
    In **Settings → Custom Fields**, use the dropdown to select the record type you want to add a field to.
  </Step>

  <Step title="Click Add Field">
    Click the **Add Field** button to open the field creation dialog.
  </Step>

  <Step title="Set the field key">
    Enter a field key — this is the programmatic identifier for the field. Keys must be lowercase and can only contain letters, numbers, and underscores (for example, `account_number` or `cert_expiry_date`). **The key cannot be changed after the field is created.**
  </Step>

  <Step title="Choose a field type">
    Select the type that matches the data you want to capture. For **Dropdown** and **Multi-Select** types, you'll enter the available options — one per line.
  </Step>

  <Step title="Configure the field">
    Fill in the remaining options:

    * **Display Label** — the name shown to users in the record detail view
    * **Default Value** — pre-fills the field when a new record is created (optional)
    * **Description** — help text shown to users below the field
    * **Required** — forces users to fill in this field before saving a record
    * **Section** — groups related fields under a heading in the detail view
    * **Width** — choose **Full row** or **Half row** (half-width fields pair side by side)
    * **Display Order** — controls the position of the field within its section
  </Step>

  <Step title="Click Create">
    Save the field. It appears immediately in the record detail view for that record type.
  </Step>
</Steps>

<Warning>
  Field keys are permanent. Choose a clear, descriptive key before saving — you won't be able to rename it later.
</Warning>

## Edit an existing field

Click the pencil icon next to any field to edit its label, description, options, required status, section, width, and display order. You cannot change the field key or field type after creation.

## Deactivate or delete a field

* **Deactivate** — use the toggle in the Active column to hide a field from record views without deleting it or its data. The field remains in the database and can be reactivated at any time.
* **Delete** — click the trash icon to remove the field definition. Existing data in records is preserved internally but will no longer be displayed or returned in API responses.

<Warning>
  Deleting a custom field cannot be undone. If you're unsure, deactivate the field instead.
</Warning>

## Design fields with AI

Click **Design with AI** to describe the fields you need in plain English. Novala's AI Copilot will generate a set of suggested fields for the selected record type, which you can review and apply with one click.

## Custom fields in the Novala API

Custom field values are returned in the `customFields` object on any API response for a record that has custom fields defined. For example, a contact response might include:

```json theme={null}
{
  "id": "con_abc123",
  "name": "Jane Smith",
  "email": "jane@example.com",
  "customFields": {
    "account_number": "ACC-00421",
    "certification_expiry": "2026-09-30",
    "preferred_contact_method": "email"
  }
}
```

The keys in `customFields` match the field keys you defined in settings. Fields that have not been filled in are omitted from the response.

<Tip>
  Custom fields are included in data exports and are available as filter criteria on list views, making them useful for segmenting and reporting on your records.
</Tip>
