Clock
Documentation

Everything you need to run Clock.

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

3. Post the panel with /clock

The persistent panel appears in the channel. Users click Clock In / Clock Out — the bot handles the rest.

Tip: The panel is persistent by design. You only need to post it once per channel; users interact with the same message forever.

Slash commands

Core commands

CommandPurposeAccess
/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

CommandPurposeAccess
/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

CommandPurposeAccess
/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

Hierarchy matters: The bot's own role must be above the 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:

Auto clock-out: any session open more than 48 hours is automatically closed (clock_out = clock_in + 8h). Runs every 6 hours. See FAQ for details.

Admin Panel buttons

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)

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:

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:

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:

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

Languages

Clock ships in 6 languages. Set the server-wide language with /setlocale.

CodeLanguageExample
enEnglishClock In
esEspañolEntrar
ptPortuguêsEntrar
frFrançaisPointer
deDeutschEinstempeln
trTürkçeGiriş

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.