# Roles & permissions

> Built-in roles, custom roles, and the full list of permission keys that control what each team member can do.

Source: https://joely.io/documentation/team/roles-permissions
Last updated: 2026-09-15

Every team member in a project has a role, and every role is a set of granular permissions. All permission checks are enforced on the backend; the UI only hides what you cannot do anyway.

## Built-in roles

| Role | Description |
|------|-------------|
| **Owner** | Full access to every permission. The owner cannot be removed from the project. |
| **Admin** | Everything except disconnecting GitHub, removing Tebex stores, and deleting the project. |
| **Staff** | Handles tickets day to day: reply, assign, change status, use AI tools, view CSAT, but no team, role, or settings management. |

Admin and Staff are created with every project as sensible defaults. Only the Owner role is locked; the others can be adjusted like custom roles.

## Custom roles

You can create custom roles with any combination of the permissions below. Roles have a position that defines their hierarchy, and the Reorder roles (change hierarchy) permission controls who can change that hierarchy.

## Permission reference

### Tickets

| Permission | What it allows |
|------------|----------------|
| View all tickets | View all tickets in the project |
| Create tickets | Create tickets |
| Update tickets | Update tickets |
| Delete tickets | Delete tickets |
| Assign tickets | Assign tickets to team members |
| Change ticket status | Change ticket status |
| Change ticket priority | Change ticket priority |
| Delete auto-assignment rules | Review and delete the legacy auto-assignment rules, replaced by [automation workflows](https://joely.io/documentation/automations/overview.md) |
| Use AI to generate response suggestions | Use AI to generate response suggestions, and (together with Approve or reject pending AI messages) ask the AI for changes on a pending draft |
| View ticket settings | View ticket settings |
| Update ticket settings | Update ticket settings |
| Manage GitHub issues on tickets | Create, link, and unlink GitHub issues from tickets |

**The View all tickets effect:** this permission decides ticket visibility. With it, a member sees every ticket in the project. Without it, they only see tickets they are **assigned to**, useful for external collaborators or trainees who should only work their own queue.

The restriction covers **reading and writing alike**: a member limited to their assignments cannot post a message, change read state, or assign somebody on a ticket outside their queue — including assigning themselves to reach it. It also applies to the real-time connection, so the ticket's live updates are never delivered for a ticket they cannot open.

### Messages

| Permission | What it allows |
|------------|----------------|
| Send messages | Send messages |
| Send internal notes | Send internal notes (never visible to customers) |
| Edit own messages | Edit own messages |
| Delete own messages | Delete own messages |
| Delete any message | Delete any message |

### Team

| Permission | What it allows |
|------------|----------------|
| View team members | View team members |
| Invite team members | Invite team members |
| Remove team members | Remove team members |
| Change member roles | Change member roles |

### Roles

| Permission | What it allows |
|------------|----------------|
| View custom roles | View custom roles |
| Create custom roles | Create custom roles |
| Update custom roles | Update custom roles |
| Delete custom roles | Delete custom roles |
| Reorder roles (change hierarchy) | Reorder roles (change hierarchy) |

### Integrations

| Permission | What it allows |
|------------|----------------|
| View integrations | View integrations |
| Configure GitHub integration | Configure the GitHub integration |
| Disconnect GitHub | Disconnect GitHub |
| Configure Discord integration | Configure the Discord integration |
| Send portal embed to Discord channels | Send the portal embed to Discord channels |

### Project

| Permission | What it allows |
|------------|----------------|
| View project settings | View project settings |
| Update project settings | Update project settings |
| Delete project | Delete the project |

### AI

| Permission | What it allows |
|------------|----------------|
| View AI settings and usage | View AI settings and usage |
| Configure AI settings and schedule | Configure AI settings and schedule |
| Add/delete knowledge entries | Add and delete knowledge entries |
| Generate knowledge from ticket conversations | Generate knowledge from ticket conversations |
| Approve or reject pending AI messages | Approve or reject pending AI messages, browse their versions and restore one |
| Toggle AI auto-response on/off for individual tickets | Toggle AI auto-response per ticket |

### Commands

| Permission | What it allows |
|------------|----------------|
| Manage chat command settings | Manage chat command settings |
| Create and edit commands shared with the whole project | Create and edit commands shared with the whole project |

### Tebex

| Permission | What it allows |
|------------|----------------|
| Add Tebex stores | Add Tebex stores |
| Update Tebex stores | Update Tebex stores |
| Remove Tebex stores | Remove Tebex stores |
| Create Tebex coupons from tickets | Create Tebex coupons from tickets |
| Revoke Tebex coupons from tickets | Revoke Tebex coupons from tickets |
| Create Tebex gift cards from tickets | Create Tebex gift cards from tickets |
| Revoke Tebex gift cards from tickets | Revoke Tebex gift cards from tickets |
| View a customer's purchases and orders from a ticket | View a customer's purchases and orders from a ticket |
| Create Tebex manual payments (deliver packages for free) from tickets | Create [Tebex manual payments](https://joely.io/documentation/integrations/tebex.md#manual-payments) from tickets, delivering packages to a player for free |
| Send Tebex payment links from tickets | Send [Tebex payment links](https://joely.io/documentation/integrations/tebex-payment-links.md) from tickets, and cancel them or check their payment |

### CSAT

| Permission | What it allows |
|------------|----------------|
| View CSAT analytics and survey responses | View CSAT analytics and survey responses |
| Configure CSAT settings | Configure CSAT settings |

### Automations

| Permission | What it allows |
|------------|----------------|
| View automation workflows and run history | View [automation workflows](https://joely.io/documentation/automations/overview.md) and their run history |
| Create, update, and delete automation workflows | Create, update, and delete automation workflows, and migrate the legacy auto-assignment rules into workflows |
| Create and edit workflows shared with the whole project | Create and edit workflows shared with the whole project. Without it, a member only manages [private command workflows](https://joely.io/documentation/automations/triggers.md#private-command-workflows) |
