docs/ai_builder/organization/custom_roles.md
The built-in project roles (Viewer, Editor, and Admin) cover most cases, but sometimes you need something in between: a contractor who can build apps but not manage secrets, or a reviewer who can approve deployments or project access changes without editing. A custom project role defines that combination.
Custom roles are created per project from Roles in the project sidebar, by anyone with the project Admin role.
Organization custom roles are separate. They start with Member access and add organization permissions such as creating projects, managing billing, or viewing audit logs. See Organization roles.
# Custom roles require collaboration
Custom roles matter once you have teammates on a project. Inviting teammates is an Enterprise feature; see [Managing project access](/docs/ai/organization/project-access/).
Select New role, then define:
Pick the closest built-in level, then add the permissions you need.
# Roles assigned to teams cannot be based on Admin
Teams can use custom roles based on Viewer or Editor. Assign the built-in Admin role directly to a person when they need full project control.
Permissions that come with the base level are shown ticked and greyed out; they're part of the role and can't be removed. You choose everything else.
| Group | Permission | What it allows |
|---|---|---|
| Project | Create apps | Add new apps to the project |
| Create threads | Start new Build chats in the project | |
| Rename project | Change the project's name | |
| Delete project | Permanently delete the project | |
| Secrets & integrations | Manage integrations | Connect and configure integrations |
| View secret names | See which secrets exist (names only) | |
| Reveal secret values | See the value of a secret | |
| Edit secrets | Add, change, and remove secrets | |
| Approvals | Approve deployments | Approve or reject deployments that need sign-off |
| Approve project changes | Approve or reject member additions, removals, role changes, and team access grants | |
| Activity | View audit log | See the project's activity history |
# Some permissions come as a set
Revealing or editing secret values requires seeing the secret names, so turning on **Reveal secret values** or **Edit secrets** also includes **View secret names**.
Two abilities stay with the built-in Admin role and can't be added to a custom role:
Either one amounts to admin control. If someone needs it, give them the Admin role. Billing isn't part of project roles either; it comes from a person's organization role.
A custom role appears in the role dropdown on the project's Members page. Assign it directly to a member or, when it is based on Viewer or Editor, to a team. Each custom role shows its base level and how many permissions it adds.
From the Roles tab, edit a custom role to rename it or change its permissions. The preview shows which capabilities will be added or removed and identifies the directly assigned members and teams affected.
Saving changes updates access for everyone who holds the role, including every member of an assigned team. A role held by a team cannot be changed to the Admin base level; reassign the team first.
To delete a custom role, first reassign every member and team using it. Reflex will not delete a role while a direct member or team assignment remains.