Quick start
Three steps, under two minutes.
1. Invite the bot
Add Clock to your server. The bot needs permission to manage roles and send messages in the channels where it'll operate.
2. Run /config
Point the bot at your channels and roles:
/config update_channel:#logs working_role:@Working admin_role:@Manager member_role:@Verified
- update_channel — where clock-in/out announcements are posted
- working_role — added to users when they clock in, removed on clock out
- admin_role — who can use the admin panel
- member_role — who is allowed to clock in at all
3. Post the panel with /clock
The persistent panel appears in the channel. Users click Clock In / Clock Out — the bot handles the rest.
Slash commands
Core commands
| Command | Purpose | Access |
|---|---|---|
/clock |
Post the clock-in/out panel in the current channel | Admin |
/config |
Set the update channel, working role, admin role, and member role | Admin |
/setlocale |
Change the server's language. Supported: en, es, pt, fr, de, tr |
Admin |
/reminder-config |
Configure overtime reminders (threshold hours, enabled/disabled, notification channel) | Admin |
Voter-unlocked commands
| Command | Purpose | Access |
|---|---|---|
/mystats |
Your personal stats — streaks, weekly/monthly breakdowns, favorite day, average session | Any voter |
Non-voters can still see basic totals via My Total Time on the panel. Detailed stats unlock after one vote on top.gg — stays active for 7 days, renews on each vote.
Premium commands
| Command | Purpose | Access |
|---|---|---|
/premium |
View subscription status & upgrade/manage | Admin |
/brand |
Set custom color, logo, brand name, and footer (applies to clock-in/out embeds) | Admin Premium |
/payroll set-rate |
Set an hourly rate for a role (e.g. role:@Officer hourly_rate:15.50 currency:USD) |
Admin Premium |
/payroll remove-rate |
Remove a role's hourly rate | Admin Premium |
/payroll list |
Show all configured hourly rates | Admin Premium |
/payroll export |
Generate a CSV with wages calculated — picks each user's highest-paying role | Admin Premium |
Configuration
Clock is configured entirely through /config. No dashboard, no web app. All four values are required the first time; rerun /config to change any of them.
The four roles / channels
- update_channel (text channel) — where public clock-in/out announcements, overtime alerts, and achievement embeds go
- working_role (role) — auto-assigned on clock in, removed on clock out. Makes active workers visible in your member list
- admin_role (role) — users with this role can access the Admin Panel (force clock-out, adjust time, reset records, CSV export)
- member_role (role) — gatekeeper. Only users with this role can clock in. Use
@everyoneif you want everyone to be able to clock in
working_role in your role list, otherwise it can't assign it.
Overtime reminders
Run /reminder-config to enable automatic DM reminders for long sessions.
/reminder-config enabled:True hours:8 notify_channel:#admin-logs
The bot checks active sessions every 5 minutes. When someone crosses the threshold, they get a DM and the admin channel is notified. Each user gets at most one reminder per hour — never spammy.
The panel & buttons
The persistent panel shows 6 buttons:
- Clock In — starts a new session, assigns
working_role - Clock Out — ends the current session, removes
working_role, posts duration - List Working — who's currently clocked in
- My Total Time — your basic totals (sessions + time)
- My Stats — full detailed stats (voter-unlocked)
- Admin Panel — opens a sub-panel for admins only
Admin Panel buttons
- Force Clock-Out — clock someone out manually (they forgot)
- Adjust Time — add or remove minutes from a user's current session
- Reset User — wipe one user's records
- Reset All — wipe everything for the server (requires confirmation)
- All Totals — shows totals for every user
- Export CSV — CSV export of all sessions (server-voter-unlocked)
- 💎 Premium — upgrade or manage your Premium subscription
Vote rewards
Clock has a three-tier voting perk system on top.gg. None of these gate core time tracking — voting just unlocks extras.
Tier 1 — Voter (7 days per vote)
- Full
/mystatsdetailed view - Achievement embeds posted to your server on milestones (streaks & hours)
Tier 2 — Reviewer (permanent)
Leave a review on top.gg — perks never expire. Detected automatically on your next vote.
Tier 3 — Server-level (rolling 7-day window)
When an admin and at least 3 members of the server have voted in the last 7 days:
- CSV export unlocked for admins (via the Admin Panel button)
Premium features
$5 USD/month per server. Cancel anytime from Discord. Test cards work in sandbox before a real charge.
Custom branding
Run /brand to open a 4-field modal:
- Primary color (hex, e.g.
#d97706) — used for embed colors - Logo URL — direct image link, shown as thumbnail in clock-in/out embeds
- Brand name (max 50 chars) — prepended to embed titles, e.g.
LSPD Timesheet — Clock In - Footer text (max 100 chars) — appears in every branded embed's footer
You'll see a live preview in the modal reply.
Payroll export
Configure hourly rates per role, then generate wage-calculated CSVs.
/payroll set-rate role:@Officer hourly_rate:15.50 currency:USD
/payroll set-rate role:@Lieutenant hourly_rate:22.00 currency:USD
/payroll list
/payroll export days:30
The export CSV contains: User ID, Display Name, Highest-paid Role, Rate, Currency, Minutes, Hours, Total Wages. If a user has multiple rated roles, the highest-paying one wins.
Custom milestones
Define your own milestones for your server. Two scopes:
- Per user — e.g. "40 hours in 7 days → Dedicated Worker". Each member earns it once. Optionally assigns a role.
- Server-wide — e.g. "1,000 total hours all-time → First Thousand". Triggers once per server. Announcement can @here.
Configuration is web-only — visit your dashboard, pick your server, open the 🏅 Milestones section. Up to 20 milestones per server.
Evaluation happens automatically on every clock-out. Thresholds use a rolling window (last N days, not calendar-aligned). A branded embed posts to your update channel.
Member-facing commands (premium-gated, free to run):
/milestones list # see active milestones for this server
/milestones me # see which you've earned
/milestones leaderboard # top 10 achievers
Scheduled reports
Subscribe any admin to receive weekly or monthly CSVs of clock sessions, delivered as a direct message.
/reports subscribe frequency:weekly
/reports list
/reports unsubscribe
Multiple admins can subscribe independently. First report arrives within ~1 hour of subscribing. Can also be managed from the web dashboard.
Outbound webhooks
Push clock_in and clock_out events to any HTTPS endpoint.
/webhooks add url:https://hooks.zapier.com/hooks/catch/... events:clock_in,clock_out
/webhooks list
/webhooks test hook_id:1
/webhooks remove hook_id:1
Payload shape: {"event":"clock_in","guild_id":"...","timestamp":"...","user_id":"...","user_name":"...","count":N}. clock_out sends duration_seconds instead of count.
Billing & cancellation
- Payment is via Stripe. Test mode supports card
4242 4242 4242 4242(any future expiry & any CVC). - Subscription is per-server — multiple servers require separate subscriptions.
- Cancel via
/premium→ Manage subscription. Access continues until the end of the billing period. - Failed payments put the sub in past_due — Stripe retries over several days before canceling.
Languages
Clock ships in 6 languages. Set the server-wide language with /setlocale.
| Code | Language | Example |
|---|---|---|
en | English | Clock In |
es | Español | Entrar |
pt | Português | Entrar |
fr | Français | Pointer |
de | Deutsch | Einstempeln |
tr | Türkçe | Giriş |
FAQ
Why does the bot need Manage Roles?
To assign the working_role when someone clocks in and remove it on clock out. The bot only manages the specific role you configure — nothing else.
What happens if someone forgets to clock out?
If a user stays clocked in for more than 48 hours, the bot automatically closes the session. The clock-out time is set to their clock-in time + 8 hours (a plausible shift), not the moment the cleanup runs — this prevents forgotten sessions from inflating totals with hundreds of hours of non-work.
The bot also removes the working_role from the user when the auto clock-out fires, so they aren't walking around with a stale \on duty\ tag.
If you want earlier notifications so your team doesn't rely on the 48h fallback, configure /reminder-config enabled:True hours:8 — the bot will DM overtime users and notify admins before the auto-close kicks in.
Can I install Clock in multiple servers?
Yes. Each server has its own config, records, and (optionally) Premium subscription.
How long is data kept?
All clock records are kept indefinitely. There's no 30/60/90-day retention cap today.
Does Premium auto-renew?
Yes — it's a monthly subscription via Stripe. Cancel anytime from /premium → Manage subscription.
Can I switch to yearly billing?
Not yet. Reach out via top.gg if yearly would make a difference for you — if there's enough interest we'll add it.
What happens if I cancel mid-month?
Premium features stay active until the end of your current billing period. No pro-rating.
Is my data shared with anyone?
No. Clock stores clock-in/out timestamps and aggregates per guild. Payment data is handled by Stripe — we never see your card. See Privacy Policy for details.