---
url: "https://docs.on-book.app/pro/user/features/admin-portal.md"
description: "Manage organizations, seasons, projects, rosters, and members from the Admin Portal."
---

# Admin Portal

> **Super admin access required.** The full Admin Portal is available only to super admins.

***

## Overview

The Admin Portal is the centralized administration interface for organization, season, project, roster, and member work. In the current app, access is exposed through **Settings → Administration** for super admins. Users who are not super admins are redirected away from `/admin`.

The Admin Portal lets you:

* **Manage members across productions** — Review member state and organization-wide admin attention items
* **Define roles** — Create custom permission sets
* **Generate invites** — Share links to invite collaborators
* **Link personnel** — Connect user accounts to personnel records
* **Manage your season** — View all productions with timeline visualization and milestone markers
* **Archive projects** — Inventory sweep before archiving puts completed productions into read-only mode
* **Manage company roster** — Maintain an org-level people directory
* **Manage inventory** — Track organization-owned props and costumes across productions
* **Import from past productions** — Bring data from archived shows into new projects
* **Configure organization** — Set your company name and branding

First-time setup now creates your organization/workspace explicitly during onboarding. After setup, projects belong to that organization scope, and the Admin Portal manages season, roster, inventory, and project access inside that workspace.

***

## Accessing the Admin Portal

### Who Can Access?

The current Admin Portal is visible to super admins. Project roles and permissions still control what members can do inside productions, but `MANAGE_USERS` alone does not expose the full Admin Portal entry point.

### How to Open

1. Open **Settings**.
2. Choose **Administration**.
3. You land on the Admin Dashboard.

***

## Admin Portal Pages

### Dashboard (Command Center)

The landing page shows:

* **Attention required** — Items needing admin action (pending requests, post-closing nudges)
* **Season snapshot** — Timeline view of your active productions
* **Recent activity** — Latest changes across your projects
* **Org stats** — Member count, project count, role distribution

### Season

View and manage all your productions:

* **Current Season** — Active productions with phase badges, timeline, and milestone diamonds
* **Past Seasons** — Archived productions (read-only)
* Expand any row to see details, member counts, closing dates, and actions
* Click **Open** to switch to a project, **Archive** to begin the archive sweep, or **Restore** to bring it back

#### Milestone Markers on Timeline

The Season Timeline displays recognized milestone events as diamond markers:

* **Amber diamonds** — First-of-type milestones (e.g., first tech, first run, opening night)
* **Purple diamonds** — Title-matched milestones (e.g., events containing "opening", "final", "strike")
* Hover over any diamond to see the milestone name and date
* Compact dots appear on the Dashboard's Season Snapshot widget

#### Archive Sweep

When you click **Archive** on a project, an inventory checklist appears before the project is archived:

1. The system scans the project's props and costume pieces
2. Items sourced from **Stock**, **Purchased**, or **Built** are shown as eligible
3. Items already linked to inventory are marked with a green checkmark
4. Select the items you want to add to your organization's permanent inventory
5. Click **Add & Archive** to save selected items and archive the project
6. Or click **Skip & Archive** to archive without adding any items

This ensures valuable physical assets aren't lost when a production closes.

### Inventory

Manage your organization's physical asset inventory:

* **Table view** — Name, type, condition, location, availability
* **Type filters** — Props, Costumes (expandable to other item types)
* **Condition tracking** — Excellent, Good, Fair, Poor
* **Availability status** — Available, In Use, Retired
* **Usage history** — See which productions used each item
* **Photos** — Upload reference images for each inventory item

Items are added to inventory through:

* The **Archive Sweep** checklist (when archiving a production)
* The **"Add to Org Inventory"** button in individual Prop or Costume modals
* Manual creation in the Inventory page

### Projects

View all productions with management actions:

* **Active projects** — Currently running productions
* **Archived projects** — Completed shows in read-only mode
* Click **Import from Production** to bring data from an archived show into a new project

#### Import Wizard & Batch Copying

Reuse data from completed productions using the Import Wizard:

1. Click **Import from Production** in the Projects header
2. Select a source project from the dropdown (archived or active)
3. Choose a category to import:
   * **Props** — Bring over prop definitions from the source production
   * **Costumes** — Import costume piece records
   * **Personnel/Cast** — Import company rosters
4. The system uses a **namespace prefixing** strategy to ensure imported records do not collide with existing data while preserving cross-module links.
5. Review the items in the preview
6. Click **Import Selected** to batch copy them into your current project

### Company Roster

Your organization-level people directory:

* **Table view** — Name, category, email, phone, production count, and linked projects badge
* **Filter pills** — All / Staff / Volunteer / Board / Student / Guest / Contractor (with counts)
* **Search** — Find people by name or email
* Click **Add Person** to add someone manually, or click **Import CSV** to bulk-import from a spreadsheet
* Click any row to view/edit their profile, work history timeline, and linked project badges
* **Categories:** Staff, Volunteer, Board, Student, Guest Artist, Contractor

#### CSV Import

1. Click **Import CSV** in the roster header
2. Upload a CSV file (drag-and-drop or paste text)
3. Preview parsed data — the wizard auto-matches column headers (supports 20+ synonyms)
4. Review potential duplicates (name similarity ≥80% or exact email match)
5. Confirm and import — new roster records are created immediately

#### Work History & Linked Projects

When you open a roster person's profile and switch to the **History** tab:

* **Active Projects** — Shows teal badges for each production the person is currently linked to
* **Production History** — Vertical timeline showing past roles, project names, and date ranges

### Members

Manage everyone in your project:

#### Viewing Members

* See all project members in a table
* View their assigned role, email, and status
* Filter by role or status

#### Approving/Rejecting Join Requests

When someone uses your join link:

1. They appear in the **Pending** section
2. Click **Approve** to grant access
3. Click **Reject** to deny access
4. Approved members get your selected default role

#### Changing Member Roles

1. Find the member in the table
2. Click the **role dropdown**
3. Select a new role
4. Changes apply immediately

#### Deactivating Members

1. Find the member
2. Click **Deactivate**
3. Confirm the action
4. Their project access becomes inactive immediately

Inactive members remain visible so an admin can still understand what happened to the roster and access state.

#### Invitation Repair

The current access flow can also include:

* **Reissue** on a pending invitation if the recipient needs a fresh invite email
* **Invite Update Requests** when someone asks to correct the email tied to an invitation
* **Approve** or **Reject** for those email-update requests

Some of these access-repair actions now also appear in the project-scoped **Project Access** section inside [Settings](./settings.md) for authorized project owners and managers.

#### Personnel Linking

Connect user accounts to personnel records:

1. Find a member with no linked personnel record
2. Click **"Link to Personnel"**
3. Select the matching personnel record
4. Click **Confirm**

This is useful when:

* Auto-linking failed (email mismatch)
* A user signed up before their personnel record existed
* You need to manually correct a link

### Organization

Configure your company-level identity:

* **Organization Name** — Displayed throughout the Admin Portal and emails
* **Logo** — Used for branding in reports

Organization setup is explicit. New accounts complete onboarding before using the Admin Portal; passive page loads do not create organizations automatically.

### Roles

Define what each role can do:

#### Understanding Roles

Each role is a collection of permissions. Common roles include:

| Role | Typical Permissions |
|------|---------------------|
| **Owner** | Everything |
| **Stage Manager** | Full editing access |
| **Designer** | Department-specific editing |
| **Actor** | View access, self-service features |
| **Crew** | Limited view access |

#### Organization-Level Templates

If you have an organization, you can define **role templates** at the org level that automatically apply to new projects:

1. Navigate to **Roles** in the Admin Portal
2. In the **Organization Templates** section, click **"+ New Template"**
3. Name the template and configure its permissions
4. Toggle **"Default"** to have it auto-inherit into new projects

**Template Inheritance:**

* When you create a new project, all **default** org templates are copied in as project roles
* Project roles can be customized independently without affecting the org template
* Customized roles show an indicator so you know they've diverged
* Use **"Reset to Template"** to restore a project role to match its org template

#### Creating a Custom Role

1. Click **"+ New Role"**
2. Enter a role name (e.g., "Assistant Stage Manager")
3. Check the permissions this role should have
4. Click **Save**

#### Editing a Role

1. Find the role in the list
2. Click **Edit**
3. Modify permissions as needed
4. Click **Save**

**Note**: Built-in roles (Owner, Stage Manager) cannot be edited.

#### Deleting a Role

1. Click **Delete** next to the role
2. Confirm deletion
3. Members with that role need to be reassigned

### Generating Invite Links

Share your project with new collaborators:

1. Go to the **Members** page
2. Click **"Generate Share Link"**
3. Copy the generated URL
4. Share via email, Slack, text, etc.
5. When they click the link and sign in, they appear in Pending

#### Share Link Security

* Links are **project-specific**
* New users must **sign in with Google** or email
* They appear as **Pending** until you approve
* You can **revoke** links if needed

***

## Permission Reference

Permissions control what members can do:

### View Permissions

| Permission | Allows |
|------------|--------|
| VIEW\_BUDGET | See budget analytics |
| VIEW\_PRODUCTION | Access Production tab |

### Edit Permissions

| Permission | Allows |
|------------|--------|
| EDIT\_RUNSHEET | Modify run sheet |
| EDIT\_BLOCKING | Draw blocking paths |
| EDIT\_SCHEDULER | Create/edit calendar events |
| EDIT\_PROPS | Manage props inventory |
| EDIT\_COSTUMES | Manage costume pieces |
| EDIT\_SOUND | Manage sound cues |
| EDIT\_SETS | Modify set builder layouts |
| EDIT\_NOTES | Create and edit notes |
| EDIT\_BUDGET | Configure budget allocations |
| EDIT\_PRODUCTION | Manage deadlines |

### Management Permissions

| Permission | Allows |
|------------|--------|
| MANAGE\_USERS | Manage project members where the current project surface allows it |
| SELF\_CHECK\_IN | Use attendance self-service |

***

## Best Practices

emoji\_objects **Start with built-in roles** — Customize only when needed

emoji\_objects **Review pending members promptly** — Don't leave collaborators waiting

emoji\_objects **Use descriptive role names** — "Costume Designer" > "Designer 1"

emoji\_objects **Link personnel early** — Prevents confusion in tracking

emoji\_objects **Don't over-share invite links** — Generate new ones if compromised

***

## Troubleshooting

### "I can't see the Admin Portal"

* You may not be a super admin
* Project permissions such as `MANAGE_USERS` do not expose the full Admin Portal by themselves
* Ask the maker/operator to create the production or adjust access

### "A member isn't linked to their personnel record"

* Go to Members → find the member → Link to Personnel
* Select the correct personnel record manually

### "Someone is stuck in Pending"

* Go to Members → Pending section
* Click Approve or Reject
* If they don't appear, have them try the link again

### "The invitation went to the wrong email"

* Open the relevant project access surface
* Reissue the invite if the recipient just needs a fresh send
* If the app shows an email update request, approve or reject that correction there

***

## Related Guides

* [Getting Started](../getting-started/first-project.md)
* [Personnel Directory](./personnel.md)
* [Features Overview](./overview.md)

***

*Last updated: May 15, 2026*
