Internal Naming Of Fields
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:
User settings → User level
Then enable the option:
I want to see the developer settings level
Where to edit the internal name
Once Developer level is enabled:
- Open your table
- Edit a field
- Go to Advanced user → Developer level
- 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
Usage in JavaScript
The internal name is what you use in your scripts:
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
// 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.