When creating a custom object, you have two choices for the Record Name: text and autonumber. What principles can you use to determine which one is best?
Consider the following:
1. Uniqueness
If you want the field to be unique, use an autonumber, since uniqueness cannot be enforced with text. As such, text may cause your users to enter duplicate names, leading to confusion.
2. User Entry
With autonumber, the user doesn’t need to enter anything; a subsequent number is always generated. This can be helpful when you want to avoid too much data entry.
If you want them to enter a value, and the value has some descriptive meaning (like a zip code), then text is the way to go.
3. Function Object
If the object is used as a junction object, then an autonumber is preferred. This allows the user to focus on linking the other two (or more) objects, and not about what to name things.
4. Forced Naming
Sometimes you want the name to be something very specific, like a concatenation of several fields. In this special case, using a text field is the way to go.
However you’ll want to offer an easy way for users to not enter a value in this field, as it will be (presumably) overwritten by automation.
The takeaway
When creating custom objects, choosing the best data type for the record name can be challenging. Use these principles to guide you.