---
title: "Custom user attributes"
canonical_url: "https://docs.getdx.com/custom-user-attributes/"
md_url: "https://docs.getdx.com/custom-user-attributes.md"
last_updated: "2026-06-18"
---

# Custom user attributes
Custom user attributes in DX allow you to filter and break down reports by any dimension that matters to your organization.

For example, with an **Employment Type** attribute, you could ask: “Our deep work sentiment score dropped by 11 points—how does that differ between FTEs and contractors?”

DX customers commonly use attributes such as job level, primary programming language, work location, hardware used, tools used, and remote versus in-office.

## Default attributes

DX provides the following attributes out of the box, depending on account configuration:

- **Tenure bands**: Generated based on user start dates, when available.
- **Coding activity level**: Collected during DX Snapshots through the question “Do you regularly write code as part of your job?”.
- **AI usage level (unified)**: Determined based on combined usage of AI tools.
- **Snapshot branch**: Only populates if snapshot branching is enabled; label varies by account.
- **Copilot usage level**: Only populates if [GitHub Copilot](https://docs.getdx.com/connectors/github-copilot-metrics/) is connected.
- **Cursor usage level**: Only populates if [Cursor](https://docs.getdx.com/connectors/cursor/) is connected.
- **Windsurf usage level**: Only populates if [Windsurf](https://docs.getdx.com/connectors/windsurf) is connected.
- **Amazon Q usage level**: Only populates if [Amazon Q](https://docs.getdx.com/connectors/amazon-q/) is connected.
- **Cody usage level**: Only populates if [Sourcegraph Cody](https://docs.getdx.com/connectors/sourcegraph-cody/) is connected.
- **Tabnine usage level**: Only populates if [Tabnine](https://docs.getdx.com/connectors/tabnine/) is connected.
- **GitLab Duo usage level**: Only populates if [GitLab Duo](https://docs.getdx.com/connectors/gitlab-duo/) is connected.

## Setting attributes

We typically recommend updating attributes data—along with your team hierarchy data—before each DX Snapshot. You can set attributes using one of four methods:

1. CSV upload
2. API upload
3. Responses to DX Snapshot questions
4. Manual entry in the DX UI

### CSV upload

The most common way to set custom attributes is by uploading User CSVs:

1. Go to Admin -> User CSVs as an admin user.
2. Click the +Import button.
3. Download a starter CSV:
   - If attributes already exist in DX, download your current user data.
   - If this is your first time uploading attributes (or starting fresh), download the CSV template for your source system:
     - [Slack](https://docs.google.com/spreadsheets/d/1UjTym5PPnGgu_sIBUZY2G-dB-_5OnlFnoEliwm6b4WA/edit#gid=0)
     - [MS Teams](https://docs.google.com/spreadsheets/d/1B1XO3h6WOr52qTSRS3p8NayUr7BxWOSRuPrZx189pcQ/edit#gid=0)
     - [Email](https://docs.google.com/spreadsheets/d/1Ke17nj4Iz9aFMwRWbOCv29QgyetPN6WOdrs6KuQAI8k/edit#gid=0)
4. Add attributes by including columns that begin with `attribute:` such as `attribute:Job title`. Please note that column headers and values are case sensitive.
5. To remove an attribute, leave the column out of your CSV and then delete the attribute from [Custom attributes](https://app.getdx.com/admin/tag-groups) to fully remove existing data.
6. Once you upload your CSV, DX will display a summary of the results, including any processing errors, and provide a CSV with error details.
7. Fix errors by either updating your original file or editing the error CSV directly, then re-upload the corrected version.

### API upload

You can programmatically update attributes using the DX Web API. Refer to the [`users.attributes.update`](https://docs.getdx.com/webapi/methods/users.attributes.update/) method for details on request format and usage.

### Snapshot questions

Certain types of attributes—like work preferences or tool usage—may not exist in systems like Workday. DX Snapshots allow you to gather this data directly from team members via custom attribute questions.

1. Go to Snapshot settings.
2. Add a custom attribute question—please note that you can include up to 3 custom attribute questions per snapshot.
3. Define the attribute name.
   - This name will appear in report filters and breakdowns.
4. Write the question and response options.
   - We recommend no more than 8 options.
   - There is a hard limit of 11 options.
5. Use the preview to ensure the question and responses look correct.
6. Save your changes and the question will be included in your next snapshot.
   - If you only want to collect this data once, remember to remove the question from future snapshots to avoid overwriting previous responses.

#### Examples

| Attribute name   | Question                                   | Example Options                           |
| ---------------- | ------------------------------------------ | ----------------------------------------- |
| Work Environment | Where do you primarily work from?          | Remote, Hybrid, In-office                 |
| Tool Usage       | Do you regularly use an AI code assistant? | Yes, No, Planning to                      |
| Primary Language | What is your primary programming language? | JavaScript, Python, Java, Go, Ruby, Other |
| Machine Setup    | What kind of machine do you primarily use? | Mac, Windows, Linux, Chromebook           |

### DX UI

You can manually update custom attributes for individual users in the DX UI. While this method isn't recommended for bulk updates, it's helpful for managers who want to make changes for their own team members.

1. Go to **Teams** and select the team that includes the user.
2. In the Contributors table, find the user you'd like to update.
3. Click the menu icon (⋮) next to their name and select Manage Attributes.
4. Edit the relevant attribute values, then save your changes.
---

## Sitemap

[Overview of all docs pages](/llms.txt)
