Server analytics that update in near real time
The Analytics dashboard surfaces every signal your server produces — joins, leaves, messages, voice minutes, reactions, threads — and rolls them up into clean panels you can act on. Open it, set what you want tracked, and the live tiles, audit log and channel breakdown stay in sync as activity happens.
Before you open the page
Analytics is a paid module. The page renders an empty state until both conditions below are true — a quick check now saves you a confused refresh later.
- Analytics module is enabled in Server Settings (or your guild is on Custom-Host).
- Tracking is turned on — the page exposes its own enable toggle separately from the module switch.
- You hold the analytics.view capability (default: every member).
- Members have generated activity in the last 24 hours, otherwise the live tiles read 0.
The tab strip at a glance
Every panel on the Analytics page lives behind one of six tabs. The page header shows a PRO chip — analytics is part of the Pro tier and the chip links to billing if your server is still on Free.
Overview tab — the daily check-in panel
When you open Analytics this is the first tab. Use it to spot anomalies: a sudden drop in active users, a join spike, an empty voice room when the community usually has dozens.
Stat tiles, top of page
- Members — current member count, with the 24h delta beside it.
- Messages (24h) — every human message logged in the last day. Bot messages are excluded by default.
- Active users (24h) — distinct members who sent or reacted in the last 24 hours.
- Voice minutes (24h) — total minutes spent in voice channels.
- Joins / Leaves / Net — three small tiles that sum to your day-over-day membership change.
- Voice now — live count of users currently in voice.
- Reactions (24h) and Threads (24h) — secondary engagement signals.
Activity tab — what happened today, hour by hour
Activity charts the same window as Overview but breaks it into 24 hourly buckets. Use it to find peak engagement windows for events, polls or announcements.
Charts on this tab
- Messages-per-hour bar chart for the last 24 hours.
- Voice-minutes-per-hour line, layered on the same axis when both are non-zero.
- Active-users-per-hour line for spotting the windows where the most distinct people are around.
- Hover any bar or point to see the exact count for that hour.
Common task: find the best time to post an announcement
Open the Activity tab
Look at the message bars across the day.
Identify your top 2-3 hours
Cross-reference with the active-users line — high messages with low active users is one chatty crowd, not broad reach.
Schedule with Automations
Take that hour and use it as the cron in an Automation rule (Trigger: Scheduled — Cron) to post your announcement when most members are around.
Growth tab — joins, leaves and net change
Growth is the long-window view: 7-day, 30-day, 90-day, and full-history series. Use it for monthly retros and to validate marketing pushes.
What you get
- Stacked bar chart with green joins above the line and red leaves below.
- Net-change line drawn on top — the visual that matters for retention conversations.
- Window picker (7d / 30d / 90d / All time) at the top of the tab.
- A small leaderboard listing the top inviters when invite tracking is available.
Channels tab — per-channel performance
Channels lists every text and voice channel with a small panel of metrics, sorted by activity. It is the fastest way to spot which channels are dead and which are doing all the work.
Metrics shown per channel
- Messages in window (default 24 hours, switchable to 7d).
- Distinct authors in window — engagement breadth, not just volume.
- Reactions in window.
- For voice channels: total minutes and distinct members.
- A trend sparkline so you can see whether the channel is climbing or sliding.
Audit tab — who changed what
The Audit tab is a paginated table of every settings change made on this page, plus tracking enable/disable events. Useful when one of your team toggled something and broke the panel.
Columns
- When — timestamp in your guild timezone.
- Actor — Discord user who made the change.
- Action — settings_updated, tracking_enabled, tracking_disabled, retention_changed.
- Before / After — diff of the changed field.
- Source — dashboard or API call.
Settings tab — the four control groups
All knobs live here. Changes save instantly and propagate to the bot through Redis, so a tweak shows up on the Overview tab within seconds.
Display Mode
PANEL keeps Analytics on the dashboard only. RENAME also pushes a daily summary into a Discord channel by editing a pinned message.
Example: PANEL
When displayMode is RENAME, this is where the live panel message lives. Required for RENAME mode.
Privacy & coverage
Master switch for collecting per-user activity. Off means you still get aggregate counts but no per-member breakdowns.
Example: On
Whether bot messages are counted toward Messages 24h.
Example: Off
Whether webhook posts are counted (RSS feeds, GitHub bots, etc.).
Example: Off
Whether messages inside threads count toward channel and overall totals.
Example: On
Retention tier
- BASIC
- 7 days of detailed events. Free for any server with the module enabled.
- STANDARD
- 30 days plus daily rollups. Recommended for most communities.
- PRO
- 90 days plus monthly rollups. Required for year-over-year comparisons.
Engine tuning — only touch if you know why
| Setting | Type | Default | Description |
|---|---|---|---|
| flushIntervalSec | enum | 30 | How often the in-memory buffer is written to the database. 15 = freshest, 120 = lowest write load. |
| publishCoalesceSec | enum | 60 | How long to batch dashboard updates before broadcasting. 30 = real time, 300 = once every 5 min. |
| logChannel | channel | — | Optional. Posts engine warnings (buffer overflow, retention prune) to this channel. |
Common tasks
The three flows you will run within your first week of using the page.
Turn the page on for the first time
Two switches, in this order.
Start at Server SettingsModules.
- Enable the Analytics module — the toggle persists immediately.
- Reload Dashboard → Analytics. The page now renders an empty state with an "Enable tracking" button.
- Click Enable tracking. From this moment SYNTHET writes new events; existing chat history is not retroactively counted.
- Visit the Settings tab and set retentionTier to STANDARD if you can — it is a one-line change you will be glad you made later.
Move the panel into a Discord channel
If you want a glanceable summary visible to everyone without opening the dashboard.
- Open Settings tab.
- Switch displayMode to RENAME.
- Pick a panelChannel — a private moderator channel is a sensible default.
- Save. Within a minute SYNTHET posts a panel message and starts editing it on each publish cycle.
- To kill it, switch displayMode back to PANEL — the existing message stays put but stops updating.
Diagnose a tile that reads 0
The most common confusion.
- Confirm the module is on (Server Settings → Modules).
- Confirm tracking is on (Settings tab top of page).
- Confirm there has been activity in the window — Activity tab will be flat if it is genuinely a quiet hour.
- Confirm includeBots / includeWebhooks if you only have automated traffic.
- Check the Audit tab for a recent settings_updated row that may have changed coverage.
Troubleshooting
Specific symptoms and what to check first.