“User custom fields” and “custom attributes” are the same thing. User custom fields is the capability you turn on and the schema you define. Custom attributes is the section those fields render in on a person’s profile.
Turn on the capability
The toggle is in a team’s Settings → Capabilities.- Enable Databases first. Custom fields are defined on the Users database, so the User custom fields toggle stays locked until Databases is on.
- Enable User custom fields.
Define the fields
The Users table appears in the owning team’s Databases alongside your other tables. Add fields to it exactly as you would any other item type, and every field type is available. See Schema design for the field types and for how renames, retypes, and deletions behave. The Users table’s key field holds Serval’s internal user ID rather than a user-facing attribute, so it’s excluded everywhere fields are listed or picked.The Users table behaves differently from a table you create:
- There’s no Add item button. Rows are created by user ingestion, or on the first manual save against a person who doesn’t have one yet.
- It can’t be deleted.
- User search backs the browse experience rather than the standard item list, so the archived-items toggle doesn’t apply.
Populate the fields
From a connected app
Values come from your connected IdP’s user payloads. Map them on the Users table’s Sources tab, using the same multi-source mapping UI as any other database. Several sources can contribute to the same table, and you pick the source of truth per field. See Ingestion.By hand on a profile
Open a person’s profile, go to the Attributes tab, and click any value under Custom attributes to edit it in place.Pinning
A manual edit pins the value by default, which stops sync from overwriting it. Release the pin to let connected apps update the field again, or pin an unpinned value to freeze what’s currently there. Every write is recorded. Expand a row to see its history: previous values, whether each was pinned, the user or connected app that set it, and when.Where user custom fields can be used
The split isn’t arbitrary. Access profiles, routing rules, and SLA criteria match on value labels, so they only offer the types that can produce a populated value picker. Offering the others would let you build a rule that matches nobody. Queue and ticket filters use typed predicates instead, so they can express Number, Boolean, Timestamp, and User reference comparisons too.
Surfaces that author criteria against these fields hide the option entirely until the org has opted in and defined at least one usable field.
Permissions
Both sections are read-only on a deactivated user’s profile. System users show no default attributes at all, and their custom attributes are read-only.
What’s next
Design the schema
Field types, key fields, and how to change a schema after data is in place.
Map a source
Connect an IdP and map its user payload onto your fields.
Use them in access profiles
Build profile membership criteria from user attributes.
Permissions and history
Control who can view and edit items, and trace every field change.

