# User Profiling

Chamilo allows you to define custom profile fields (extra fields) to capture additional information about users beyond the standard name, email, and role.

## Extra Profile Fields

![The extra profile fields list showing custom fields with name, type, and visibility settings](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-fa2ce99a1b32aeebfc2b7c8e82aac5c395df5f0e%2Fadmin-extra-fields-list.png?alt=media)

Extra fields let you store metadata specific to your organization, such as:

* Employee ID
* Department
* Job title
* Location/office
* Phone number
* Custom identifiers

## Creating Extra Fields

1. From the administration panel, navigate to **Extra fields** or **Profile fields**
2. Click **Add a field**
3. Configure the field:
   * **Field name** — Internal identifier
   * **Display name** — The label shown to users
   * **Field type** — Text, dropdown, date, checkbox, etc.
   * **Visibility** — Whether the field is visible on the user profile
   * **Required** — Whether the field must be filled in
   * **Default value** — An optional default
4. Save

## Field Types

| Type              | Description                  |
| ----------------- | ---------------------------- |
| **Text**          | A single-line text input     |
| **Textarea**      | A multi-line text input      |
| **Dropdown**      | A list of predefined options |
| **Checkbox**      | A yes/no toggle              |
| **Date**          | A date picker                |
| **Date and time** | A date and time picker       |
| **Number**        | A numeric input              |
| **Tag**           | Multiple tag values          |

## Using Extra Fields

Extra fields appear:

* In the user creation and edit forms
* On user profile pages (if visibility is enabled)
* In user imports (you can include extra field values in CSV imports)
* In exports and reports (filter or group by extra field values)

## Tips

* **Plan before creating** — Define what information you need before creating fields, as changing field types after data has been entered can be problematic
* **Use dropdowns for consistency** — When a field has a known set of possible values, use a dropdown instead of free text to ensure data consistency
* **Use for reporting** — Extra fields are useful for filtering reports (e.g., "show all users in Department X who completed Training Y")
