Built in Service id analytics 11 commands 6 settings

Analytics

Analytics counts what happens in your server, never what was said. Messages, voice, joins and leaves, and if you turn it on who is online and what members play, become trends, retention curves, leaderboards, charts you can call up in Discord and a stats card members can share. Role rewards, alerts and counter channels run on the same numbers.

Turn it onDashboard, Services, Analytics, switch to Enabled
First stepRun setup
PlanEvery feature included for every server: unlimited alert rules, 100 leaderboard size

Set it up

  1. Turn Analytics on. Open your server's Services page in the dashboard and switch Analytics on. From that moment the bot records every regular and reply message (system messages such as join notices, boosts and pins are not counted), every voice session, and every join and leave. Bot accounts are skipped by default.

  2. Run the setup wizard. Open Analytics in the dashboard. Until the wizard has run, the overview page sends managers to the Setup page. "Run Auto-Setup" creates a private #analytics-alerts channel (or reuses a text channel with "analytics" in its name), saves the defaults with bots excluded, creates an "Activity Drop Warning" alert that fires when messages drop 30% against the previous week, and starts an import of up to 365 days of message history. The import walks every text channel, its active and public archived threads and its forum posts, counts only regular and reply messages, and records a join for each current member on the day they joined. Progress shows on the Settings page. Channels excluded before the wizard runs are left out of the import, so set exclusions first if some channels must stay out. You can re-run the wizard later.

  3. Decide what not to count. On the Analytics Settings page, keep Ignore bots on ("Yes (recommended)") or choose "Include Bots". Add Excluded channels; threads and forum posts inside them are excluded too. Add Excluded roles; members currently holding one are left out, and a role change is picked up within half an hour. Exclusions stop new recording and hide those channels and members from the server-wide numbers. A member's own card still shows what was recorded before.

  4. Check the timezone and how long data is kept. The Timezone defaults to "Follow server timezone", which is set on the Bot settings page; pick a zone here only when Analytics should differ from it. Data retention offers 30, 90, 180 or 365 days (90 to start); the page marks the choices above your plan's cap. Detail older than the window is removed every night, and shortening the window deletes the difference at the next nightly run. Charts and rankings cannot look back further than this window.

  5. Try the commands. /server posts a public overview card. /me posts your own stats card, with a button to hide it. /leaderboard ranks members by Messages, Voice Hours or Voice Sessions, and 0 days means all time. /top gives four ranked lists at once, or one ranking per page. /chart messages, /chart voice, /chart members, /chart channel and /chart member draw per-day charts over 7, 14, 30 or 90 days; they are private unless you set post to yes.

  6. Open the dashboards and style the cards. The Analytics pages in the dashboard are Overview, Messages, Voice, Channels, Members, Heatmap, Retention, Status, Activity, Leaderboard, Rewards, Alerts, Counters, Annotations, Settings and Setup. The Card Designer page sets the colours, background image and sections of the stats card, holds the "Public cards enabled" switch (turning it off also stops /stats, /me and /user), and has a leaderboard section for the /leaderboard defaults: metric, window, number of entries (5 to 25), time frames, medals, avatars, progress bars and your rank line.

  7. Share numbers outside the dashboard. The Sharing card on the Settings page sets who can open the public stats page: Private ("The link is off. Nobody outside your dashboard sees these numbers.", the default), Members only, Role restricted, or Public ("Anyone with the link. Members are never shown, only server totals."). The page lives at /a/ followed by your server id and has Overview, Messages, Voice and Members pages. Members share their own card with "Open & share" on /me and hide it with "Hide my card". Managers can see who hid their card and can reset every share link from the Settings page; old links then stop working.

  8. Reward activity with roles. On the Rewards page, a rule gives a role when a member meets its conditions: a minimum or maximum on a metric such as messages, voice hours or voice sessions, a window in days (0 means all stored data), a top rank or top percent, or a minimum reached on at least so many days. Up to 8 conditions combine with all or any, and each rule runs on a schedule from every 10 minutes to once a day. The bot needs Manage Roles and its own role must sit above the reward role. All-time rules on messages, voice hours and voice sessions use totals that data retention never removes.

1 optional features with their own switch
  • Log channel: analytics log

Cómo funciona

  1. Run setup. The wizard creates a private #analytics-alerts channel, turns on bot exclusion, adds a starter activity-drop alert and imports up to 365 days of message history so the charts are not empty on day one.
  2. Activity is counted. Every message, voice session, screen share, reaction, thread, join and leave is recorded as a count and rolled up by hour and day. Turn on status and activity tracking and the bot also counts who is online every 5 minutes and records what members play, stream or listen to. Message text is never stored.
  3. Read the dashboard. Overview, retention, messages, voice, members, channels, heatmaps, status and activity, a drill-down for any member or channel, or /server, /top and /chart inside Discord.
  4. Put the numbers to work. Role rewards grant roles when a member meets your conditions, alerts post to a channel when something changes, counter channels show live numbers in a channel name, and members share a stats card with /stats or /me.

Permissions the bot needs

Generated

The invite link grants these. If one is missing the service page in the dashboard shows a re-grant banner, and the affected commands say what they cannot do instead of failing silently.

View ChannelSend MessagesEmbed LinksManage Roles

What is included

GeneratedSee pricing

Every Analytics feature is included for every server, on the shared bot and on custom bots. A subscription adds a custom bot identity and marketplace access, not features here.

FunciónIncluded
Overview
Messages
Voice
Members
Channels
Leaderboard
Role Rewards
Alerts
Counter Channels
Settings
Retention Analysis
Heatmaps
Data Exports
Annotations
Data Backfill
Status
Activity
Public Dashboard
Analytics API
Límites
Alert RulesUnlimited
Leaderboard Size100
Data Retention (days)365
Counter Channels10

Comandos

GeneratedEvery command in detail
comandosQué hace estoWho by default
/chart
/chart messagesMessages per dayEveryone
/chart voiceVoice minutes per dayEveryone
/chart membersJoins and leaves per dayEveryone
/chart channelOne channel's messages or voice minutes per dayEveryone
/chart memberOne member's messages and voice minutes per dayEveryone
/leaderboard
/leaderboardShow server activity leaderboardEveryone
/me
/meShow your stats card for this serverEveryone
/server
/serverShow this server's activity overviewEveryone
/stats
/statsShow your analytics stats for this serverEveryone
/top
/topTop members and channels of this serverEveryone
/user
/userShow a member's stats card for this serverEveryone

Everything it does

Messages

Volume, who drives it, where it happens and what it is made of.

Trends with context. Daily counts with a 7-day average, the change against the previous period, the busiest and quietest day, and a weekend-versus-weekday verdict.
Who and where. Top channels and top senders, how many different people posted, the quietest channels, a channel growth table, and drill-downs into any channel or member.
What messages are made of. The share of replies, attachments, embeds, stickers and mentions.
Reactions and threads. Reactions given and received per day, top emoji and how they trend, top givers and receivers, threads created and active, the channels with the most threads, and top thread creators.
An anomaly banner. A day at least two standard deviations from the trailing 14-day mean is flagged on the page, once there are seven days of history.
Heatmaps. Hour-by-weekday grids for messages and voice, per channel if you like, with the peak and quiet cells and the number of active hours. Click a cell for its top 5 channels and members, or compare the grid against the period before it.

Voice

Voice is tracked with the same care as text, including who talks to whom.

Hours and peaks. Voice hours per day with a 7-day average, peak concurrent users per day, and who is in voice or streaming right now.
Session shapes. Median and 95th percentile session length, an average, and a histogram from under 5 minutes to over 2 hours.
Stickiness. Returning versus total voice users per week for the last 8 weeks.
Voice partners. Pairs of members who spend the most time in the same channel, counted once they have shared 5 minutes, over the last 90 days.
Screen share as its own metric. Hours, sessions and top streamers.
Voice states are recorded. Each session remembers whether the member was AFK, self-muted, self-deafened, server-muted or server-deafened, and you can leave any of those states out of voice hours, sessions and leaderboards.

Members and retention

Whether people stay, and who is about to leave.

Joins, leaves and net. Per day, with a live member count line and daily active members.
Cohort retention. Day 1, 7 and 30 retention per weekly join cohort, where coming back on that day or any later day counts, computed nightly. A cell shows pending until the cohort is old enough.
A retention funnel. Joined, got a role, first message, first voice, returned after a week, still here, each measured from the member's own join time.
Activation and bounce. The share of joiners who spoke or joined voice within 24 hours, and the share who left within a day or a week.
Churn risk. Members active in the last 14 days who have gone silent for 5, on the overview and the retention page.
Tenure and account age. Average, median and percentile days in the server, a tenure histogram, and an account-age histogram of new joiners as a raid signal.
Who invited whom. Invite attribution from Discord's invite counters, with a top inviters table and still-here counts.
Fake joins are flagged. A join that leaves within 10 minutes, an account younger than 7 days, or a member inviting themselves is marked as fake and left out of the inviter table unless you include it. Both windows are yours to change, and a no-avatar rule can be added.
Recent joiners and leavers. The last 15 joiners with the invite they came through, and the last 15 leavers with how long they stayed.
A profile for every member. Message, voice and reaction series, top channels, voice partners, a heatmap, top emoji, threads, invitees, name history, rank, current status, and the activities they spend the most time in.

Channels

Which channels are alive, and which only look it.

A verdict per channel. Growing or declining on a 20 percent swing, steady, new activity, quiet, or dead after 14 days of silence.
Momentum and dead lists. Channels trending up or down, and the ones nobody has used in two weeks.
Channel groups. Show several channels as one row, on every channel table, in the API and in CSV. Up to 20 groups of up to 25 channels each. A group replaces its channels so nothing is counted twice, and the group's own page breaks it back into its parts.

Status and activity

Off by default, and only possible when your bot has the Presence intent.

Members by status. Every 5 minutes the bot counts how many members are online, idle, on do not disturb and offline. The Status page shows the latest count, the peak, the series and an hour-by-hour average over 1, 7 or 30 days.
What members do. Activity tracking records a session each time a member starts or stops playing, streaming, listening to, watching or competing in something. The Activity page shows total hours, members and sessions, the top 10 activities by hours and by members, who is doing what right now, and the top 5 members behind each of the 5 biggest activities.
Allow or block lists. Keep only the activities you name, or drop the ones you name, up to 200 names.
Checked against the intent. Both switches only turn on when the bot serving your server has the Presence intent. Without it every member would read as offline, so the page says so instead of showing zeros.
Whole-server counts. Status samples are counts of the whole server with no member column. Activity sessions skip bots and excluded roles, and a member who hides their stats card is left out within five minutes.

Leaderboards, cards and charts

The parts members see.

Twelve leaderboard metrics. Messages, voice hours and sessions, screen share hours and sessions, reactions given and received, threads created, days in server, days active in text or voice, and unique channels used.
`/stats` as a picture. A rendered card with totals, all-time and 30-day rank with a top-percent figure, 1-day and 7-day counts, top channels, sparklines and the next role reward, with a switcher for a 30-day activity graph and a channel breakdown. /me and /user open the same card.
`/leaderboard` as a picture. A ranked card with dropdowns to change the metric and time frame in place.
`/top` and `/server`. /top ranks members by messages or voice, channels by messages or voice, or shows all four at once, over 7, 14, 30 or 90 days. /server renders an overview card: members and how that changed, active members, messages and voice hours for 7 and 30 days, top channels and 30-day sparklines.
`/chart` in Discord. A per-day chart of messages, voice minutes, joins and leaves, one channel, or one member, over 7, 14, 30 or 90 days. It is shown only to you unless you choose to post it in the channel.
A shareable page. Each stats card has a signed, no-login public page and PNG. Members can hide their own card with one button, and Settings can revoke every link at once or switch cards off for the server.
A card designer. Colours, background image and section toggles for both cards, with live previews. Leaderboard cards show 5 to 25 entries with avatars, progress bars and medals.

Role rewards

Roles that members earn, granted and revoked without anyone watching.

Conditions, not just thresholds. A reward holds up to 8 conditions on 15 metrics, combined with all or any. Each condition can set a minimum, a maximum, a window, a top rank or top percent, or a number of days the minimum must be met on. The bot grants the role to everyone who qualifies.
Fifteen metrics. Messages, voice hours and sessions, days active in text or voice, unique channels posted in, screen share hours and sessions, days in server, reactions given and received, threads created, the longest streak of consecutive days with a message, account age, and members invited.
On its own schedule. Each reward runs every 10 minutes, 30 minutes, hour, 6 hours or once a day, 30 minutes by default.
Revoke, DM and announce. Optionally remove the role when a member no longer qualifies, DM them a custom message when they earn it, and post a notice to a channel of your choice, grouped into one message per run by default.
Invert and ignore. Flip a reward so it targets members who do not meet the conditions, and list up to 200 members it never touches.
Checked before it runs. The page warns when the bot lacks Manage Roles, its top role is too low, or the role is managed by an integration, and shows a live holder count.

Alerts and annotations

The dashboard comes to you when something changes.

Five alert types. Activity drop in messages or active members, spam spike, activation drop, voice peak and dead channel, each checked every 5 minutes with its own cooldown of 1 to 168 hours, 6 by default.
No alarms on a quiet week. An activity drop only fires when the previous window had at least 50 messages, or 10 active members for the member metric.
Delivery you can trust. A rule cannot be saved without a channel. If the channel breaks, the alerts page shows it and the owner is told once a day.
A firing history. Every alert that fired, with a one-line summary.
Annotations on the charts. Drop a labelled marker on any date, or switch on any of 17 automatic sources: giveaways started, ended or cancelled, announcements published, raid mode, lockdowns and anti-nuke incidents, Beacon events, tracked streams going live, patch notes for tracked games, member milestones from 100 to 100,000, boost tier changes, Start Your Server builds, service toggles, alerts that fired, finished history imports, and the bot being offline for 10 minutes or more. A backfill adds up to 365 days of past events.

Counter channels

Live numbers in a channel name.

Eleven kinds of counter. Members (people, bots or everyone, with an optional goal), members with any or all of chosen roles, members in voice, channel count, role count, members by status, a clock, a countdown, an activity count or change over 1, 7 or 30 days, and the top member or channel.
Up to 4 counters per channel. A name template of up to 100 characters can combine them, for example {1} members, {2} online.
Renamed on a 6-minute slot. Discord allows two renames per channel every 10 minutes, so a counter channel is renamed at most once per 6-minute slot and a clock moves in 6-minute steps.
New channel or an existing one. Create a fresh channel or attach counters to one you already have, with a preview line before you save. A status counter needs the Presence intent and keeps the channel's last good name when it cannot count.

Starboard

Off by default, and the one place content is copied.

Reposts the best messages. A message that reaches your reaction threshold, 1 to 100 distinct reactors on the emoji you choose, is reposted as an embed in a starboard channel with its first image.
Rules. Allow or block self-stars and bot messages, ignore channels, and the post is removed if the count drops back under the threshold.

Public dashboard, API and CSV

The numbers can leave the dashboard on your terms.

A read-only dashboard. Overview, messages, voice and members pages over 7 to 90 days, with per-day charts and the top channels, never a member's name or row. Open it to nobody, to members who sign in, to holders of chosen roles, or to everyone.
A per-server API. Five endpoints behind a server key: per-day series for messages, voice hours, joins, leaves, members and reactions, top members and channels, totals, member and active-member counts, and the channel list. Member rows carry ids and counts, never names.
Keys you control. Up to 5 active keys per server, each shown once and stored only as a hash, with 60 requests a minute per key.
CSV from every page. Fifteen exports, one per page, carrying the page's current filters, with timestamps in ISO 8601 and a guard against spreadsheet formulas.

Filters

Applied when a page is read, never when an event is recorded, so a change reshapes every page at once.

Who and what counts. Excluded channels and roles, an allow list of roles so only their holders count, a block list of members, and voice states to leave out.
Nothing is deleted. The raw rows stay complete, so turning a filter off brings the history back.
Saved views. Save a page with its filters under a name, for yourself or for everyone with access.

In the dashboard

Overview KPI tiles for the last 30 days, the activity chart with messages, voice, joins, leaves, reactions and threads plus your annotations, a 7 or 30 day comparison, an insight line, the anomaly banner, top channels and users, live voice, activation, churn risk and lurker counts, and a pulse of the last hour and last 15 minutes.
Retention Activation, bounce, the cohort table and chart over 4 to 52 weeks, and the churn-risk list.
Messages, Voice, Members, Channels One page per subject with the charts and tables listed above.
Heatmap Messages or voice by hour and weekday, optionally for one channel, with a cell drill-down and a previous-period comparison.
Status and Activity Who is online, idle and busy over time, and what members play, stream and listen to, over 1, 7 or 30 days.
Member and channel detail A drill-down page for any member and any channel or channel group.
Leaderboard Twelve metrics, per-row sparklines and an all-time sidebar.
Alerts and Annotations The rule builder and firing history, and manual and automatic chart markers with their 17 sources and backfill.
Role Rewards The rewards table with live holder counts and the condition builder.
Counters Your counter channels with their last value and last rename, the create and attach form with a preview, and pause, reorder and delete.
Card Designer Colours, background and section toggles for the stats and leaderboard cards, with previews.
Settings Exclude bots, invite tracking and the fake-join rules, data retention from 7 to 365 days, a time zone that follows the server or overrides it, excluded channels and roles, the role allow list, member block list, voice states and channel groups, status and activity tracking with the activity allow or block list, dashboard access level, API keys, members who hid their card, a share-link reset, re-scan for bots, a role roster refresh, the starboard, saved views, a Discord history import and rollup backfill of 1 to 365 days, and the job list.
Setup The one-click wizard and its checklist.
Personal stats page A web copy of the stats card for any member, with the share link. Other members' pages need the viewer role.

Configuración

GeneratedAll 6 settings
Log channel The channel the setup wizard creates as #analytics-alerts and wires up as the delivery channel of the starter "Activity Drop Warning" alert. Analytics counts as set up once a channel is stored here; until then the overview page sends managers to the setup wizard. Each alert rule picks its own delivery channel on the Alerts page, and nothing else is posted to this channel. Default: none.
Ignore bots Leaves bot accounts out of Analytics. On by default. While on, bot messages and voice time are not recorded at all, and a bot's stats card answers that bots are not tracked. Turning it off records bots from then on and counts them in the dashboard totals and on the /server card, but leaderboards, /top member rankings and the /chart lines never include bots. Nothing already skipped is added back.
Data retention How many days of detailed activity (each message, each voice session and the other per-member records) the server keeps. Default 90. The Settings page offers 30, 90, 180 or 365 days; the longest choice depends on the server's plan, and the page marks the choices above it. Records older than the window are removed every night, and shortening the window deletes the difference at the next nightly run. Charts and /top cannot look back further than this window. The daily summaries behind the charts are kept for twice the window, and the all-time totals used by role rewards are kept for good.
Timezone The IANA timezone days are counted in, for example Europe/London. The server timezone on the bot page is used when this is empty.
Excluded channels Channels never counted, such as bot-command or staff channels.
Excluded roles Members holding any of these roles are never counted.

Runs on its own

Batched writes. Events are queued and a separate worker stores them in batches, so the bot never waits on the database.
Rewards every 10 minutes. The loop checks which rewards are due; each one runs on its own schedule, from every 10 minutes to once a day.
Alerts every 5 minutes. Every enabled rule, honouring its cooldown.
Status samples every 5 minutes. One count of online, idle, busy and offline members per server that has status tracking on.
Counters every 6 minutes. Counter channels are recomputed on each 6-minute slot and renamed only when the name changed.
Nightly at 00:05 UTC. Cohort retention is recomputed, a member-count snapshot taken, old cached names pruned, and data beyond your retention window deleted in batches.
Roster sync every 30 minutes. Keeps the member list and the role roster behind the role filters fresh between restarts.
An hourly janitor. Voice, screen share and activity sessions that never got an end event are closed after 24 hours.

Límites

WhatValorNotas
Data retention7 to 365 daysSet per server, 90 by default. Rollups are kept twice as long.
History import1 to 365 daysWhatever the bot can read.
Chart windows7, 14, 30 or 90 days/chart and /top, capped by your retention.
Leaderboard metrics12
Role reward metrics15Up to 8 conditions per reward, 200 ignored members.
Reward schedule10 minutes to once a day30 minutes by default.
Alert types5Cooldown per rule, 1 to 168 hours, 6 by default.
Starboard threshold1 to 100Distinct reactors, 5 by default.
Voice partners window90 daysPairs count after 5 shared minutes.
Name history12 namesPer member, on the profile.
Leaderboard card entries5 to 2510 by default.
Counters per channel4Name up to 100 characters, one rename per 6 minutes.
Counter channels10 per serverThe default cap.
Channel groups20Up to 25 channels each.
Status sampleEvery 5 minutesPages read 1, 7 or 30 days.
Activity filter200 namesAllow or block list.
Auto-annotation sources17Backfill up to 365 days.
API keys5 active60 requests a minute per key, windows up to your retention.
CSV exports15One per page.

What it watches

Generated

The Discord events Analytics reacts to while it is enabled. It does not read history from before it was turned on.

Members joiningMembers leavingMember changes (roles, nickname, timeout)New messagesPresence and status changesReactions addedReactions clearedReactions removedThreads createdProfile changes (name, avatar)Voice joins, leaves and moves

Safety

Counts, not content. The message table has no content column. What is stored per message is who, where, when, and whether it had a reply, attachments, embeds, stickers or mentions. Only ordinary messages and replies count.
The starboard exception. A starred message's text and first image are reposted in Discord as an embed. That is the only place content is copied, and only if you turn the starboard on.
Exclusions. Bots are excluded by default. Exclude channels and roles from collection, and threads under an excluded channel are excluded too. An exclusion stops recording; it never deletes what was already counted.
Retention you set. 7 to 365 days per server, purged nightly. Rollups are kept twice as long, then pruned.
Public cards are signed and optional. Card pages use a signed token tied to the server and member, name only public channels, stop working when the member leaves or hides their card, and can be disabled or reset for the whole server.
What a viewer can see. A card or chart in Discord never names a channel the viewer cannot open, and /chart channel refuses one they cannot see.
Presence is opt-in twice. Status and activity tracking are off until you turn them on, and cannot turn on without the Presence intent. Status samples hold no member column, and a member who hides their card is left out of activity tracking.
Outside access is yours to open. The read-only dashboard is private until you choose a level, never shows a member row, and API keys are stored as hashes and shown once.
Your bot's token. On servers running their own bot, every Discord call uses that bot's token.

What it does not do

  • No XP or levels. Rewards are conditions, met or not.
  • No sentiment, toxicity or AI summaries. Everything is counts.
  • No alert for a general activity spike. The spike banner is on-page only; the alert types are drop, spam rate, activation, voice peak and dead channel.
  • No scheduled digest posts, and CSV is a download from the page, not a scheduled delivery.
  • No cross-server analytics. Every page, key and export is one server.
  • No follower counters. A counter channel cannot show YouTube, Twitch or Kick follower counts.
  • No status or activity page in /chart. Status and activity live on the dashboard and in CSV.
  • No per-member data deletion inside the service. A member can hide their card, but their counts stay until the retention window removes them.

Preguntas

Does it read my members' messages?

No. It records that a message happened, who sent it, where and when, and what it contained in counts. The text is never stored. The only exception is a starboard repost, which you have to turn on.

How far back does it go?

Setup imports up to 365 days of message history the bot can read, and Settings can import 1 to 365 days later. After that, everything is recorded live and kept for the retention window you set.

Can members see their own stats?

Yes, with /stats or /me, or on the web at their personal stats page. Other members' pages need the viewer role, and a member can hide their card from everyone else with one button.

What does retention mean here?

A member counts as retained on day 7 if they were active on day 7 or any later day, per weekly join cohort. Cells stay pending until the cohort is old enough to know.

Can I reward active members automatically?

Yes. A role reward grants a role when up to 8 conditions on 15 metrics are met, with optional revoke, DM and a channel notice, on a schedule from every 10 minutes to once a day.

Will it count bots?

Not by default. Bot exclusion is on, and a re-scan tool flags historical rows from before a bot was recognised.

Does it track who is online?

Only if you turn status tracking on, and only when your bot has the Presence intent. It then counts online, idle, busy and offline members every 5 minutes as whole-server numbers.

Can I show the member count in a channel name?

Yes. A counter channel combines up to 4 counters, such as members, members online, members in voice or a countdown, and is renamed at most once every 6 minutes because of Discord's rename limit.

Can people outside the dashboard see the numbers?

If you let them. Open the read-only dashboard to members, to chosen roles or to everyone, hand a tool an API key, or download any page as CSV. None of those show a member's name.

Why does a chart show fewer days than I asked for?

/chart and /top are capped by your retention window, and the reply says how many days the server keeps.

YourBot docs Reference tables are generated from the code that is running. Ask in Discord Suggest a correction