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:

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:

  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
 


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.

Was this article helpful?