Features
Everything included in Staff Chat 2.0.0.
Chat and rooms
- A shared Group Chat room for every approved admin.
- Optional private 1:1 rooms between two admins, enabled by default and switchable in Settings.
- Floating widget on every admin page with expanded and collapsed launcher modes.
- Online admin list with presence dots and per-room unread badges.
- Configurable AJAX polling interval from 1 to 60 seconds.
- Auto-scroll, message timestamps and an unread count in the browser title.
- Configurable message length and number of messages loaded per request.
- Automatic retention and a per-room message cap.
Messages and interactions
- @mentions with autocomplete, a mention button, highlighted names and a title marker when you are mentioned.
- Emoji picker with the common chat emojis.
- Reactions 👍 ❤️ 😂 🎉 😮 😢 with live counts.
- Typing indicator showing which admin is typing.
- Edit your own messages within a configurable time window.
- Delete messages with a SweetAlert2 confirmation (Full Administrator only).
- Clickable URLs that open in a new tab.
- Optional notification sound with per-admin mute.
Files, images and links
- Image and file attachments, one per message.
- Allowed types: JPG, PNG, GIF, WebP, PDF, TXT and ZIP.
- Configurable maximum size with a hard 50 MB ceiling.
- Configurable aggregate attachment storage quota (default 1,024 MB; 0 = unlimited).
- Inline image previews and a full-size lightbox.
- Authenticated downloads — no public attachment URLs.
- Attachments encrypted at rest with WHMCS
encrypt()/decrypt(). - Text-only link previews with SSRF protections.
- Attachment thumbnails, previews and download links in Chat History and search results.
History, search and export
- Encrypted chat history that survives page refreshes and admin logins.
- Chat History page with room selector, DataTables sorting, paging and filtering.
- Search across all rooms, admins, message text and attachment names.
- Reaction counts shown next to messages in history and in search results.
- CSV export of history and of the activity log.
- Retention settings applied on write, on page view and by daily cron.
Dashboard analytics
- 30-day message volume line chart.
- Time-of-day bar chart highlighting peak communication hours.
- Group Chat versus private room distribution doughnut chart.
- Top mentioned admins ranked with relative bars.
- Attachment count, encrypted storage usage and a breakdown by Images, PDFs, ZIPs, Text and Other.
- KPI cards for 30-day volume, active admins, attachments and peak hour.
- Aggregated server-side from the encrypted stores and cached in an encrypted file that invalidates when history or attachments change.
- Metric refresh endpoint restricted to Full Administrators and protected by POST plus CSRF.
Activity log
- Records widget connects, room switches, settings changes, message edits and deletions, cleared history, cleared log and denied access attempts.
- Filters by action, admin and date range.
- IP address and browser user-agent metadata, with IP logging switchable.
- Session grouping, CSV export, retention pruning and a Full Administrator clear action.
- Message content is never written to the activity log.
Access and safety
- Full Administrator-only module pages.
- Read-only roles that can view and react but cannot send.
- Ghost mode: selected admins are hidden from presence and their message names are masked.
- Per-admin message rate limiting.
- Blocked words and optional link blocking.
- Activity-log retention and IP logging toggle.
- CSRF protection, AJAX-only endpoints and POST-only chat actions.
Notifications
- Configurable default sound, volume and sound-on default.
- Desktop notifications through a service worker with a
new Notificationfallback. - Chrome and operating-system permission diagnostics.
- A test notification button in the Notifications panel.
Known limitations
- Link previews are text-only and do not follow redirects.
- One attachment per message.
- Reactions show as counts in Chat History and CSV; they are not interactive there.
- Attachment encryption is in-memory, so very large files use more PHP memory.
- Desktop notifications also require the browser to be enabled in the operating system.
- Dashboard analytics reflect stored history only, so they are bounded by retention and the per-room message cap.