diff --git a/FEATURES.md b/FEATURES.md new file mode 100644 index 0000000..aa1b4c6 --- /dev/null +++ b/FEATURES.md @@ -0,0 +1,86 @@ +## Broccolini Bot – Feature Overview + +Broccolini Bot is a Discord support bot that turns Gmail emails and Discord messages into trackable support tickets stored in MongoDB. + +--- + +## Email & Discord Ticketing + +**Summary:** Connects Gmail and Discord so each support conversation becomes a ticket channel or thread. + +- Email → Discord ticket channels or threads (with overflow categories) +- Discord-only tickets created from panels or context menus +- Full Gmail reply threading for email-sourced tickets +- Ticket transcripts saved to a Discord channel and optionally emailed on close + +--- + +## Ticket Workflow & Management + +**Summary:** Provides a structured workflow for creating, handling, and closing tickets. + +- Claim / unclaim with claimer emojis in channel names +- Priority levels (low / normal / medium / high) with emojis +- Escalation and de-escalation between tiered support categories +- Close confirmation, force-close, and automatic transcript generation +- Auto-close, inactivity reminders, and auto-unclaim (configurable) +- Per-ticket limits and global ticket limits to prevent abuse + +--- + +## Discord UI: Panels, Buttons & Modals + +**Summary:** Uses rich Discord components so users and staff interact with tickets through buttons and forms. + +- `/panel` command to post “Open ticket” panels +- Ticket creation via modal (email, game, description fields) +- Ticket action row with Close, Claim, Escalate, and De-escalate buttons +- Thread-style or category-channel tickets, or panels that offer both +- `/setup` wizard to guide initial panel and category configuration + +--- + +## Staff Tools & Notifications + +**Summary:** Gives staff better visibility and control over tickets and workloads. + +- `/add` and `/remove` to manage who can see a ticket +- `/transfer`, `/move`, `/topic`, `/stats`, `/search`, `/backup`, `/export` +- `/accountinfo` for account lookups by email or Discord user +- Per-staff notification channels with reply alerts and unclaimed digests +- Optional DM reply alerts via `/notifydm` +- Optional private staff-only threads attached to ticket channels + +--- + +## Tags, Saved Responses & Variables + +**Summary:** Speeds up replies and keeps tickets categorized. + +- `/tag` command with predefined ticket tags and emojis +- `/response` commands to create, edit, send, delete, and list saved replies +- Template variables (ticket, staff, server, date/time, hours, etc.) in responses +- Tag usage and response usage tracked in MongoDB + +--- + +## Automation, Patterns & Surge Detection + +**Summary:** Monitors ticket volume and chat activity to warn staff about problems early. + +- Background jobs for auto-close, reminders, and auto-unclaim +- Pattern detection for repeat users, games, tags, escalations, and stale tickets +- Surge detection for high ticket volume, backlogs, and no-staff situations +- Chat alerts for busy channels or messages without staff replies + +--- + +## Logging, API & Configuration + +**Summary:** Centralizes configuration in environment variables and exposes optional integrations. + +- All behavior configured via `.env` and `config.js` (messages, colors, timeouts, limits) +- Dedicated Discord channels for transcripts, logs, security, automation, and Gmail polling +- Optional HTTP API under `/api` with token-based auth +- Healthcheck endpoint (`GET /`) for Docker and load balancers +