---
title: "Internal Naming Of Fields"
url: "https://help.tabidoo.cloud/en/article/internal-naming-of-fields"
language: "en"
last_updated: "2026-10-26T12:59:12.611Z"
---

# Internal Naming Of Fields

This chapter is intended for advanced users. It explains what internal field names are, why they are important, and how to customize them.

## Why internal names matter

Each field you add to a form automatically gets a **system-generated internal name**.  
This name is used when working with:

-   JavaScript
-   API integrations (e.g. Make, Zapier)

Customizing internal names helps you:

-   better navigate in scripts
-   avoid confusion when working with multiple fields or linked tables
-   use clearer and more descriptive naming

## Enable Developer level

To customize internal field names, you first need to enable **Developer level** in your user settings.

Go to:

Click your **avatar** in the top right corner → **Profile info** → **User level**. See [Profile Info & Preferences](https://help.tabidoo.cloud/en/article/profile-info-preferences#user-level).

Then enable the option:

*I want to see the developer settings level*

![](https://cdn-assets.productfruits.com/0525185c-b1d6-4aa1-a456-5d2fcd2e571d)

## Where to edit the internal name

Once Developer level is enabled:

1.  Open your table
2.  Edit a field
3.  Go to **Advanced user → Developer level**
4.  You will see the **Field internal name** input

* * *

## System vs custom naming

-   **System name** → generated automatically (e.g. `company`)
-   **Custom name** → defined by you (e.g. `nameOfCompany`)

When writing JavaScript, the internal name is shown in the autocomplete together with the field label, which helps you identify the correct field.

* * *

  
Example

When you create a new text field:

**Field name:**  
`Company`

The system automatically generates an internal name:

`company`

If Developer level is enabled, you can change it, for example, to:

`nameOfCompany`  
 

![](https://cdn-assets.productfruits.com/b84404a1-64b8-4945-8a79-f0ae3846538f)

* * *

## Usage in JavaScript

The internal name is what you use in your scripts:

```typescript
doo.model.nameOfCompany
```

* * *

## Rules for custom internal names

When defining a custom internal name, you can only use:

-   letters (`a-z`, `A-Z`)
-   numbers (`0-9`)
-   underscore (`_`)

* * *

## Why use a custom internal name?

Custom internal names make your scripts easier to read and maintain. This is especially useful when:

-   you work with multiple linked tables
-   field names are similar across tables
-   you want shorter or more descriptive identifiers

For example:

`personalID`

* * *

## Example in script

```typescript
// For new records, set the current user as the owner
if (doo.model.ver === -1) {
    doo.model.owner.setValue(doo.currentUser.login);
}

// Copy the system status value into the Status field
if (doo.model['_status']) {
    doo.model.status.value = doo.model['_status'];
}

// Store the current date and time in the Last Open field
doo.model.lastOpen.setValue(new Date(new Date().toUTCString().substr(0, 25)));

// Access a field with a custom internal name
doo.model.personalID
```

* * *

## Result

Using custom internal names makes your code clearer, easier to navigate, and more maintainable—especially in larger applications or when working with integrations.

* * *

**Note**  
If you delete the internal name of a field (Developer level must be enabled), a new system-generated name will be automatically created.  
However, this is not recommended, as it may break existing JavaScript or integrations that depend on the original name.
