# Members and profiles

Add people, link their Discord accounts, use custom fields, import from CSV, and handle people who leave.

Every person your organization keeps track of has a **profile** in Crew and appears in the
**Directory**. A profile is your organization's record: it can be linked to a Discord account so the
person can sign in, but it doesn't have to be.

## What a profile holds

| Field                                 | Notes                                                                                         |
| ------------------------------------- | --------------------------------------------------------------------------------------------- |
| Name, username                        | The name shown everywhere in Crew.                                                            |
| Role                                  | Shown as their title. Set from your [role list](/crew/roles-and-access).                      |
| Department, unit                      | See [Departments and units](/crew/departments).                                               |
| Manager                               | Builds the reporting line: approvals, the org chart and who sees sensitive records.           |
| Employment status                     | **Active**, **On leave** or **Terminated**.                                                   |
| Worker type                           | **Internal**, **External** or **Contractor**.                                                 |
| Hire date                             | Starts their "time in service".                                                               |
| Company, location, language, timezone | Optional details.                                                                             |
| Email, phone, bio                     | Optional. **Contact details** are only visible to the member, their managers and Super Users. |
| Discord account                       | The linked account, if any.                                                                   |
| Custom fields                         | Whatever your organization adds (see below).                                                  |

Profiles also show the member's **service record** (role, time in role, promotions, initial
training), their **certifications and training**, **onboarding** checklists, and, for those
allowed, **notes and disciplinary records**. See [Records and service record](/crew/records).

## Adding someone

Managers and Super Users click **Directory → Add member**:

1. **Search your Discord server** to link their account. Crew only links people who are members of
   the server, and each Discord account can be linked to one profile.
2. Pick their **role**. Leave it empty and Crew takes it from their Discord roles.
3. Fill in the rest and save.

New members get the onboarding checklists that apply to them, and a welcome DM from the Crew bot if
their account is linked.

> [!TIP]
> To add many people at once without typing, turn on **Add people automatically** in **Settings →
> Roles & access**. Everyone with one of your roles gets a profile.

## The directory

**Directory** lists everyone, with search and filters for **Department** and **Status**. Click a
person to open their profile.

Managers and Super Users can **Export CSV**: name, role, department, unit, manager, status,
location, language, timezone, hire date and username. Contact details are never included.

## Custom fields

Super Users add custom fields under **Settings → Onboarding → Custom profile fields**. Each field has
a **Label**, a **Type** (**text**, **number**, **date** or a **choice** list with your own options),
and can be marked **Sensitive — hide from colleagues**.

- Ordinary fields are visible to everyone who can see the profile.
- **Sensitive** fields are only visible to the member, their managers and Super Users, like contact
  details.

Managers and Super Users fill them in from the profile with **Edit details**.

## Importing from a CSV file

Super Users can add up to **500 members at a time** with **Directory → Import**. Click **Download a
template** for a ready-made file.

The first row names the columns. Column names are matched without caring about capitals, spaces,
hyphens or underscores, so `Hire date`, `hire_date` and `HireDate` all work.

| Column                                        | Required | Format                                                              |
| --------------------------------------------- | -------- | ------------------------------------------------------------------- |
| `Name`                                        | Yes      | Up to 100 characters.                                               |
| `Title` (or `Role`)                           |          | The name of a role in your list.                                    |
| `Department`                                  |          | The name of an existing department.                                 |
| `Unit`                                        |          | The name of an existing unit (in that department, if one is given). |
| `Email`, `Phone`                              |          | Contact details.                                                    |
| `Hire date`                                   |          | `YYYY-MM-DD`, for example `2026-01-15`.                             |
| `Worker type`                                 |          | `internal`, `external` or `contractor`.                             |
| `Status`                                      |          | `active`, `on leave` or `terminated`.                               |
| `Discord ID`                                  |          | The person's Discord user ID (numbers only). Each only once.        |
| `Manager ID`                                  |          | The Crew ID of their manager's profile.                             |
| `Location`, `Timezone`, `Language`, `Company` |          | Free text, for example `Berlin` or `Europe/Berlin`.                 |

Other columns are ignored.

Crew checks **every row first**. If any row has a problem, nothing is imported and you get a list of
the rows to fix (for example "Row 7: Unknown department "Suport""). Fix the file and import it again.

> [!WARNING]
> Departments, units and roles are matched by name and must already exist. Create them first, or
> leave those columns empty and set them in Crew afterwards.

## When someone leaves

You have two options:

- **Set their status to Terminated.** Their profile and history stay, for your records, and Crew
  removes the Discord roles it manages (their role and department role). Use this in most cases.
- **Delete their data.** A Super User opens the profile and clicks **Delete**. This is a **GDPR
  deletion**: the profile and everything attached to it are removed permanently, and their name is
  removed from the audit history. It can't be undone. With the two-person rule on, a second Super
  User must approve it. See [Security, data and retention](/crew/security-and-data).

If the person leaves your Discord server, their profile stays. They simply can't sign in to your
organization any more.

### Troubleshooting

- **"Can't find them" when linking.** They must be in your Discord server, and Crew needs the
  **Server Members Intent** to search it. Run **Settings → Integrations → Check the bot**.
- **"This Discord user appears twice in the file".** Each Discord ID can only appear once per
  import, and can't belong to an existing profile.
- **The import says "Unknown role".** The `Title` column must match a role name in **Settings →
  Roles & access** exactly (capitals don't matter).

Source: https://docs.noyralabs.com/crew/members
