> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Members

> Add teammates to your workspace and manage the roles that control their access

Add and manage workspace members in **Settings** > **Members**.

A member can belong to more than one workspace and switch between them using the workspace selector in the top-left corner.

## Roles

Manage roles in **Settings** > **Roles & Permissions** and assign them in **Settings** > [**Members**](/en/3.11.x/use/workspace/team-members-management).

A member can hold several roles at once and gets the *combined* permissions of all of them. They start with a first role when invited, and more can be added or changed afterward.

<Info>
  What a member can do comes from two things: the *roles* they hold, and the *resource access* they're granted on individual apps and knowledge bases.

  See [Permissions](/en/3.11.x/use/workspace/roles-and-permissions) for details.
</Info>

## Add Members

The Owner, Admins, Editors, and custom roles with the *Manage members* permission can add members.

<Note>
  **Prerequisites:**

  * Set `CONSOLE_WEB_URL` to an address invitees can reach, not `localhost`. Every invitation link is built from it.
  * Configure an email service with `MAIL_TYPE`. Invitations are delivered by email, so this is required to add members.
    See [`CONSOLE_WEB_URL`](/en/3.11.x/deploy/advanced-configuration/environment-variables#console_web_url) and [Mail Configuration](/en/3.11.x/deploy/advanced-configuration/environment-variables#mail-configuration) for details.
</Note>

Select **Add**, enter one or more email addresses, choose a role, and send the invitation. An invitation link will be emailed to each address.

Invitation links expire after 72 hours by default (configurable via `INVITE_EXPIRY_HOURS`); if someone doesn't accept in time, invite again to send a fresh link.

## Manage Members

The Owner, Admins, Editors, and custom roles with the *Manage members* permission can change member roles and remove members.

**Change a member's roles**: Assign one or more roles to a member. The change takes effect on the member's next action, even if they're currently signed in. The Owner's role can only be changed through an ownership transfer.

**Remove a member**: Removing a member revokes their workspace access right away. The apps and knowledge bases they created stay in the workspace. The Owner can't be removed.

**Transfer ownership**: Only the Owner can transfer ownership. The transfer is confirmed with a verification code emailed to the Owner. Once verified, the chosen member becomes the new Owner and the previous Owner becomes an Admin.

<Note>
  Because the verification code is sent by email, ownership transfer requires a configured email service (`MAIL_TYPE`). See [Mail Configuration](/en/3.11.x/deploy/advanced-configuration/environment-variables#mail-configuration) for details.
</Note>

## Troubleshooting

| Symptom                                                 | What to check                                                                                                                                                     |
| :------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Invitees don't receive the invitation email             | Invitations are delivered only by email, which works only when `MAIL_TYPE` is configured. In split deployments, the worker container needs the mail settings too. |
| An invitation link won't open, or points to `localhost` | Every link is built from `CONSOLE_WEB_URL`. Set it to an address invitees can reach.                                                                              |
| An invitation link has expired                          | Links last 72 hours by default. Invite the same email again to issue a new one.                                                                                   |
| Ownership transfer never sends a code                   | The code is emailed to the Owner, so `MAIL_TYPE` must be configured.                                                                                              |
