Privacy Policy

Serenity Discord Bot
Last updated: 29 October 2026


Overview

Serenity ("the bot", "we", "our") is an open-source Discord bot that provides automatic slowmode management, audit logging, moderation tools and support tickets for Discord servers. This policy explains what data we collect, how we use it, and your rights regarding that data.


What Data We Collect

Data We Store

Data Purpose Retention
Guild (server) IDs Identify which servers have Serenity installed and store their configuration Until deletion is requested via our support server
Channel IDs Store slowmode and log channel configuration per server Until deletion is requested via our support server
Message timestamps and counts Calculate message rates to determine appropriate slowmode settings — not message content Automatically deleted after 24 hours
User IDs Used in moderation cases, warning records, and logging ignore lists Until cleared by a server administrator via bot commands, or until deletion is requested via our support server
Moderation case data Store the action type, reason, duration, and moderator/target user IDs for each moderation action Until cleared by a server administrator, or until deletion is requested via our support server
Warning records Track active warnings per user per server Until cleared by a server administrator via /clearwarns, or until deletion is requested via our support server
Log channel configuration Store which Discord channels receive which categories of audit logs, and any configured ignore lists Until deletion is requested via our support server
Historical message rate patterns Aggregated hourly message-per-minute averages per channel used to detect anomalous activity — not individual messages Automatically deleted after 30 days
Ticket records For each support ticket: its number, type, opener, assigned staff, priority, stage, escalation tier, form answers, timestamps, close reason, who handled it, and a history of what happened to it Until deletion is requested via our support server
Ticket transcripts A copy of a closed ticket's messages (see Tickets) 30 days after the ticket closes by default; see Tickets
Ticket staff notes Private notes staff add to a ticket Deleted with the ticket's transcript; if transcripts are off for that kind of ticket, until deletion is requested via our support server
Ticket ratings The opener's 1–5 rating of a closed ticket, an optional comment, and which staff it counts for Until deletion is requested via our support server
Linked-ticket answers Answers to form questions a server marks as identifying (an in-game name, an order number), lowercased, so staff can see a member's related tickets With the ticket's record
Ticket webhook delivery log For each ticket event sent to a server's own webhook: the event name, attempts, response status, timing and any error — not the event's contents Automatically deleted after 7 days
Dashboard sessions When you log in to the dashboard with Discord: your user ID, username, avatar, and Discord login tokens (encrypted) Deleted after 7 days without use, or when you log out

Data We Do Not Store


Tickets

Tickets are the one place Serenity stores message content. Servers turn them on with the Tickets module; if a server doesn't use tickets, none of this applies.

What's stored. While a ticket is open we store its record (see the table above) but not its messages. When it closes, unless the server turned transcripts off for that kind of ticket, we save a transcript: the ticket channel's messages (the first 10,000, which covers any normal ticket) with their text, embeds, timestamps, and a snapshot of the sender's name, avatar and role colour at that moment; attachment file names, sizes and links (the files themselves aren't copied, and Discord expires the links); the opener's form answers; what happened to the ticket (claimed, escalated, moved between stages, transferred, closed); and staff notes and staff-only fields, which are marked staff-only.

Who's told. Each ticket's first message says whether it's being recorded and for how long.

Who can see it. The opener receives a copy of the transcript by DM when the ticket closes, without staff notes, and can read it on the dashboard after logging in with Discord, even after leaving the server. Inside the server, the ticket's staff and server administrators can read transcripts, including staff notes, in Discord or on the dashboard. Transcripts never have public links: everyone has to log in, and anyone else is refused.

How long it's kept. Transcripts are kept for 30 days after the ticket closes by default. Server administrators can change that to anything from 7 to 365 days, or keep a kind of ticket's transcripts until they delete them. Expired transcripts are permanently deleted every night. A transcript that staff have marked as evidence for a moderation case is kept past its expiry until that hold is released. Reopening a ticket keeps its transcript until it closes again.

Deletion. Server administrators can delete any transcript with /ticket transcript delete. As the opener, you can ask for yours to be deleted with the button in the close DM, which notifies the server's staff, or by contacting us via our support server.

Ratings. When a ticket closes, the opener may be asked to rate it from 1 to 5, with an optional comment. Ratings are shown to the server's staff and used in its support statistics, credited to the staff who handled the ticket. Server administrators can turn ratings off for any kind of ticket.

Webhooks. A server's administrators can have ticket events (opened, claimed, closed and so on) sent to a web address they choose, such as their own helpdesk. Each event includes the ticket's number, status, stage, the opener's and staff's user IDs, timestamps, close reason and form answers (including fields only staff fill in), but never its messages or staff notes. Once sent, that copy is governed by whoever runs that address, not by this policy. Only HTTPS addresses on the public internet are allowed, and each event is signed so the receiver can check it came from Serenity.

Backups. Deleted transcripts can remain in our database backups for up to 30 more days before those backups are themselves deleted.


How We Use Data

Data collected is used solely to operate and improve Serenity's features:

We do not use any data for advertising, analytics sold to third parties, or any purpose beyond operating and improving the bot.


Data Sharing

We do not sell or share your data with any third parties for commercial purposes.

Audit log embeds (member joins, message edits, moderation actions, etc.) are sent to Discord channels that you configure within your own server. Those messages are governed by Discord's own Privacy Policy.

If a server's administrators set up ticket webhooks, the ticket events they choose are sent to the address they configure (see Tickets).

Guild IDs and channel IDs are transmitted to Grafana Cloud as metric labels for performance monitoring purposes. See the Third-Party Services section below for details.


Third-Party Services

Website and dashboard

The website at serenitybot.app uses only the cookies it needs to log you in; there are no analytics, advertising or tracking cookies. See the Cookie Policy. The site loads its fonts from Google Fonts, so your browser's IP address and user agent reach Google when a page loads (Google's Privacy Policy); Google Fonts sets no cookies. Avatars and server icons are loaded from Discord's image servers.

Discord API

Serenity communicates exclusively with Discord to receive events and send responses. Discord's Privacy Policy can be found at discord.com/privacy.

Prometheus and Grafana Cloud

Serenity collects internal performance metrics using the prometheus_client library and exposes them via a protected /metrics endpoint. These metrics are scraped by Grafana Cloud and used solely for monitoring the bot's operational health and performance, and for understanding which features are used so the bot can be improved.

What is included in metrics data:

What is not included in metrics data:

The metrics endpoint is protected with HTTP Basic Auth and is not publicly accessible. Grafana Cloud's Privacy Policy can be found at grafana.com/legal/privacy-policy.


Data Storage and Security

Serenity's primary data store is a PostgreSQL database on a self-hosted server. We take reasonable precautions to secure our infrastructure, but no system is perfectly secure. The bot is open source and its data handling can be inspected in full at https://github.com/patelheet30/Serenity.


Your Rights

Server Administrators

Individual Users


Data Retention


Children's Privacy

Serenity does not knowingly collect data from users under the age of 13. As a Discord bot, our service is subject to Discord's own minimum age requirements. If you believe a user under 13 has data stored as a result of using Serenity, please contact us and we will remove it.


Changes to This Policy

We may update this policy as the bot's features change. The date at the top of this document will reflect the most recent revision. Continued use of Serenity after changes are posted constitutes acceptance of the updated policy.


Contact

For privacy requests, data deletion, or questions about this policy:

esc
↑ ↓ move↵ runtab complete? all shortcuts

Keyboard shortcuts

Command palette
CtrlK
This sheet
?
Search this page
/
Tables and lists
Next / previous row
jk
Open row
↵
Close / cancel
esc