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

# Staff Management: Shifts, LOA, and Infraction System

> Track staff shifts, manage LOA requests, log promotions, run application pipelines, and monitor activity — all automated in Discord with Seshy.

Seshy's Staff Module handles the full lifecycle of your staff team in one place. From the moment someone submits an application through onboarding, shift tracking, leave of absence requests, infractions, and promotions — every step is automated, logged, and surfaced directly in your Discord server. You get a complete, auditable picture of your team without spreadsheets, manual logs, or third-party tools.

## Overview

<CardGroup cols={2}>
  <Card title="Shift Tracking" icon="clock" href="#shift-tracking">
    Clock in and out with automatic duration logging and per-staff history.
  </Card>

  <Card title="Leave of Absence" icon="calendar-xmark" href="#leave-of-absence-loa">
    Staff submit LOA requests in Discord; admins approve or deny with one click.
  </Card>

  <Card title="Infraction System" icon="triangle-exclamation" href="#infraction-system">
    Warn, escalate, and track infractions with automatic decay and appeal tracking.
  </Card>

  <Card title="Promotion Tracking" icon="arrow-up" href="#promotion-tracking">
    Log rank progressions and auto-post branded promotion embeds to your configured channel.
  </Card>

  <Card title="Application System" icon="file-lines" href="#application-system">
    Custom application forms with automated review pipelines and one-click accept/deny.
  </Card>

  <Card title="Activity Reports" icon="chart-bar" href="#staff-activity-reports">
    Review shift hours and moderation action counts per staff member for accountability.
  </Card>

  <Card title="Permission Hierarchy" icon="shield" href="#permission-hierarchy">
    Map Discord roles to Seshy permission levels for granular command access control.
  </Card>

  <Card title="Ping Role Management" icon="bell" href="#ping-role-management">
    Configure who gets notified for LOA requests, infractions, promotions, and applications.
  </Card>
</CardGroup>

## Shift Tracking

Staff start and end their shifts directly in Discord using slash commands. Seshy timestamps every clock-in and clock-out, calculates total shift duration, and stores the record to an ongoing shift history. No external tool or spreadsheet is needed — all data lives inside your server.

When a staff member runs `/shift start`, Seshy posts a branded shift-start embed to the configured shift log channel and marks that staff member as active. Running `/shift end` closes the record, logs the duration, and updates the embed. Administrators and senior staff can run `/shift history [@user]` at any time to review the full shift log for any team member.

**What Seshy logs per shift:**

* Start and end timestamps
* Total shift duration
* Staff member identity
* Cumulative hours over rolling periods

## Leave of Absence (LOA)

When a staff member needs time away, they run `/loa request` directly in Discord. Seshy routes the request to your configured review channel, where administrators can approve or deny it. Once approved, Seshy marks the staff member as on leave and sends an automatic notification. When the LOA period ends, Seshy sends a return notification to remind both the staff member and the team that they are back.

LOA status is tracked separately from shift data, so your activity reports accurately reflect whether a staff member was absent by design or simply inactive.

<Steps>
  <Step title="Submit the request">
    The staff member runs `/loa request` and provides a reason and expected return date.
  </Step>

  <Step title="Admin reviews the request">
    The request appears in the LOA review channel. Admins approve or deny with a button click.
  </Step>

  <Step title="Automatic status update">
    Seshy marks the staff member as on leave and notifies both the staff member and relevant channels.
  </Step>

  <Step title="Return notification">
    When the LOA period ends, Seshy sends automatic return notifications so nothing falls through the cracks.
  </Step>
</Steps>

## Infraction System

Seshy's infraction system gives you a structured, escalating approach to staff discipline. Every infraction is logged against the staff member's record with a reason, moderator, and timestamp. The system supports automatic escalation thresholds and time-based decay so old infractions don't unfairly affect long-term standing.

<Tabs>
  <Tab title="Infraction Decay">
    Infractions expire automatically over a configurable time window. A warn issued months ago does not permanently weigh against a staff member who has since performed well. You set the decay period in `/settings → Staff Module`.
  </Tab>

  <Tab title="Automatic Escalation">
    Define escalation thresholds that trigger automatically as infraction counts accumulate. For example: 1 warn issues a formal warning, 3 warns trigger a timeout, 5 warns result in a kick. Seshy enforces the ladder without requiring manual intervention.
  </Tab>

  <Tab title="Appeal Tracking">
    Staff can submit an appeal against any infraction. Appeals are routed to your configured appeal review channel and tracked alongside the original infraction record, giving both staff and admins full context.
  </Tab>
</Tabs>

## Promotion Tracking

<Tip>
  Promotion Tracking posts a fully branded promotion embed automatically. Make sure you have configured a **#promotions** channel in `/settings → Staff Module` so announcements land in the right place.
</Tip>

When you run `/promote @user [rank]`, Seshy logs the promotion to that staff member's career timeline and immediately posts a branded promotion announcement embed to your configured promotions channel. The embed includes the staff member's name, previous rank, new rank, and promoting officer — everything your community needs to see at a glance.

Every promotion is stored in the staff member's history, so you can always trace the full rank progression from their first role to their current position. This is particularly useful during reviews, when vouching for a staff member's tenure, or when handling rank disputes.

## Application System

Seshy's Application System lets you build fully custom staff application forms that applicants complete entirely inside Discord. Once submitted, responses are routed automatically to your configured application review channel, where reviewers can accept or deny the applicant with a single button click.

**Key capabilities:**

* Fully customizable question forms with branded embed styling
* Responses routed to a dedicated review channel automatically
* One-click accept or deny with optional feedback message
* Application status tracking so applicants receive automatic updates
* Historical record of all submitted applications per user

## Staff Activity Reports

Seshy tracks every moderation action and shift hour per staff member and surfaces that data on demand. Run an activity report to see who is consistently active, who hasn't clocked a shift recently, and which staff members are carrying the most moderation load. This makes weekly and monthly staff reviews significantly faster and more objective.

Activity reports pull from:

* Total shift hours in a given period
* Number of moderation actions taken (warns, kicks, mutes, bans)
* LOA periods (so absences are correctly excluded from active-hour totals)
* Promotion history

## Permission Hierarchy

Seshy uses a hierarchical permission system that maps your Discord roles to command permission levels. You define which roles belong to which level in `/settings → Permissions`, and Seshy enforces those rules across every module. This means your Trainee Staff cannot accidentally run commands reserved for Senior Moderators, and your Session Hosts have exactly the access they need without broader moderation powers.

<Info>
  Permission levels are independent of Discord's native role permissions. You can grant or restrict Seshy command access on any role without touching your server's Discord role settings.
</Info>

Granular overrides let you unlock or block specific commands for individual roles, giving you fine-grained control without having to restructure your entire permission hierarchy.

## Ping Role Management

Every module in Seshy supports configurable ping roles so the right people are notified at the right time. In the Staff Module, you can assign separate ping roles for:

* New LOA requests awaiting review
* LOA approvals and return notifications
* New infraction escalations
* New application submissions awaiting review
* Promotion announcements

Configure all ping roles in `/settings → Ping Roles` to keep notifications targeted and prevent alert fatigue.

## Key Commands

| Command                          | Description                                             |
| -------------------------------- | ------------------------------------------------------- |
| `/shift start`                   | Clock in for a shift                                    |
| `/shift end`                     | Clock out from a shift                                  |
| `/shift history [@user]`         | View shift history for yourself or another staff member |
| `/loa request`                   | Submit a leave of absence request                       |
| `/loa approve @user`             | Approve a pending LOA request                           |
| `/promote @user [rank]`          | Log a promotion and post an announcement embed          |
| `/infraction add @user [reason]` | Add an infraction to a staff member's record            |
| `/infraction view @user`         | View all infractions for a staff member                 |
| `/apply`                         | Open and submit a staff application                     |
