Privacy Policy

Last updated: October 4, 2026

This Privacy Policy explains what data FlaviBot ("we", "us") collects, why we collect it, how long we keep it, who can see it, and the rights and controls you have over it. It applies to the FlaviBot website and dashboard (flavibot.xyz), the FlaviBot Discord bot, and custom bots powered by FlaviBot.

FlaviBot is operated from France, and your data is stored and processed in the European Union (France, with our host OVH), with one exception: the audio files uploaded to a server's Audio library are stored in Canada by Backblaze, Inc. (see "Third parties we share data with"). For any privacy question or request, contact us at contact@flavibot.xyz or on our Discord support server. We have not appointed a Data Protection Officer; the contact point for any privacy matter is contact@flavibot.xyz.

Who is responsible for your data

For data tied to your FlaviBot account and the website (your login, dashboard access, payments, and our own analytics), FlaviBot is the data controller. For data that belongs to a Discord server that added the bot (server statistics, moderation cases, form answers, ticket activity, and server configuration), the server and its administrators are the controllers and FlaviBot acts as their processor, handling that data on their instructions. Server administrators are responsible for informing their members and for how they use these features. We can provide data-processing terms to server administrators on request.

Data we collect

Data received from Discord while the bot operates

Like every Discord bot, FlaviBot receives events from Discord for the servers it is in. To provide its features, it stores Discord identifiers (user IDs, server IDs, channel IDs, role IDs, message IDs) and caches basic public profile data (usernames, avatars, server names and icons). It also processes voice channel presence (to know who is in a voice channel) and server invite metadata (for the invite tracker, when a server enables it).

Data collected when you use the website and dashboard

  • Sign-in via Discord: when you log in, Discord shares your user ID, username, avatar, language and the list of servers you are in (OAuth scopes "identify" and "guilds"). We store your Discord ID, username, language, and the OAuth tokens needed to act on your behalf (for example to list your servers). We do not receive or request your Discord account email address. If you separately choose to connect FlaviBot as a Discord Linked Role, we additionally request the "role_connections.write" scope and store your role-connection settings (such as your chosen primary server).
  • Sessions: a signed session cookie keeps you logged in for up to 30 days. You can end a session at any time by logging out.
  • Dashboard security log: when you open or change a server's dashboard, we record your IP address, browser user agent, country and platform, together with what was changed. This log exists so that server's managers can audit who accessed their configuration: they can view these entries, including the IP address and browser details of each visit. We keep this log, and make it visible to that server's managers, on the basis of our and their legitimate interest in server security. It is deleted automatically after 180 days.
  • Website analytics: we use a cookieless, privacy-friendly analytics tool (Plausible) hosted on our own infrastructure. It does not track you across sites and does not use advertising identifiers. Like any analytics tool it records the address of each page you open. On the commands reference and the radio list, your search stays in that address so it can be bookmarked or shared, which means the text you typed is part of the address recorded when such a page is opened.
  • Error reports: if something breaks, a diagnostic report (which may include your Discord user ID and the action that failed) is sent to our error-monitoring system so we can fix it.

Content you actively submit

Some features store the content you type, because that is the feature:

  • Suggestions posted through the suggestion feature (the full suggestion text).
  • The subject you type when opening a ticket, and the rating and comment you leave as ticket feedback.
  • Answers you submit to forms created by a server (forms may ask for personal information such as an email address; what a form asks for is decided by that server, and your answers are visible to the server's staff).
  • Comments you post on our blog (public once approved) and posts you like.
  • The text of reminders you create.
  • Your birthday, if you choose to register it: day and month, with the year optional. It is used only to announce your birthday in the servers where you enabled it, and you can remove it at any time.
  • Your music playlists, liked songs, and custom rank card designs.
  • Your answers to server events (going, maybe, declined, waitlisted) and, if you set them, your calendar preferences (timezone, week start, time format, working hours), your manual unavailability blocks (label, start and end), and your membership of the teams a server manager puts you in. The preferences and blocks are used only to show the members of your teams when you are free or busy; the events you answered "Going" to, on any server, are shown to those teams as busy time only (never their title or the server they belong to). You can switch that sharing off or delete the blocks at any time from your profile page. If you create a personal calendar feed, we also store the random token that makes up its link, so we can answer the calendar app that subscribes to it; rotating the feed replaces the token.
  • Templates and presets you choose to publish to the community marketplaces.
  • What you type into the search boxes on this website (the documentation, commands, radio stations and marketplace searches), so we can see what people look for and cannot find. The text is trimmed and lowercased first, and it is discarded entirely — never shortened and kept — when it is very short or very long, or when it looks like a link, an ID, a number, an email address or a token. Those rules apply to this record of the search; where the search also stays in the page address, that address is recorded as described under "Website analytics" above.

Server configuration written by server managers

Everything a server manager configures is stored: welcome and level-up message templates, sticky and scheduled messages, custom embeds and commands, autoresponder triggers (including keywords and regular expressions), automod settings, giveaway prizes and descriptions, server events and teams (including the random token in the server's calendar feed link), and so on. Moderation cases (warnings, notes, bans and their free-text reasons written by moderators) are also stored so the server has a moderation history, along with the edit history of those reasons.

Usage statistics

These power leaderboards, server stats, recaps and similar features:

  • Message statistics: per-channel message counts (never the content of messages), when the server has statistics enabled.
  • Voice statistics: time spent in voice channels, per channel, including whether you were muted, deafened, streaming or using video, when the server has statistics enabled.
  • Leveling: XP, levels and the history of XP changes.
  • Command usage: which commands are run, when, and whether they succeeded (never the content of your messages or command arguments).
  • Interaction usage: which buttons, menus and dashboard pages you use, when, how long an action took or how long you actively spent on a page, and whether it succeeded, along with the server's approximate size and how many days you had been a member of it (never what you type; for a page, which page it is, never its address).
  • Lifecycle events: when the bot is added to or removed from a server and which account authorized it, when a premium subscription starts, renews, changes plan, is cancelled, fails a payment, is refunded or ends (the plan and amount, never card details), when premium is assigned to or removed from a server, and when a music player starts and stops in a server (how long it played, how many tracks and listeners, never who listened).
  • Music listening history: which tracks were played in a server, who requested them, and which members were in the voice channel while they played. This powers your personal listening stats, server music charts and music recommendations. Members who opted out with /privacy are not recorded as listeners; a track they request for other listeners remains attributed to its requester.
  • Invite tracking: when a server enables it, which invite a member joined with and who created that invite.
  • Counting game results and Top.gg vote timestamps (to grant vote rewards).
  • Feature usage events: a record each time a feature acts (a welcome message sent, a ticket opened, a starboard post created, and similar), containing the IDs involved and the outcome, never message content.

Payments

Premium purchases are processed by our payment providers (Stripe, Tebex) or by the Discord in-app store. Your card number, billing name and address are collected by the payment provider on their own pages and never reach our servers. We store the transaction reference, plan, amount, your Discord ID, and the billing email address the provider returns to us: it is saved on your FlaviBot account profile and in payment records, and is used only to match payments to accounts and for accounting. When you reach the premium page through a campaign link, its campaign tag (for example the bot message the link came from) is kept with the checkout, to know which links lead to purchases. If you start a premium checkout without completing it, the bot may send you a single Discord DM with a link to resume the purchase.

Custom bots

If you set up a custom bot, the bot token you provide is stored encrypted (AES-256-GCM) and is only decrypted in memory to run your bot.

Google Calendar (optional)

You can connect a Google account to FlaviBot from your profile page. This is entirely optional: every events feature works without it, and events can be added to any calendar through the "Add to calendar" links and the ICS subscription feeds without connecting anything. Connecting is done through Google's own sign-in and consent screen; FlaviBot never sees your Google password. Two levels of access exist, and FlaviBot requests only the scopes of the level you choose:

  • "Share my availability" requests read-only access to your free/busy information (calendar.freebusy), the list of your calendars (calendar.calendarlist.readonly) and your calendar timezone setting (calendar.settings.readonly), plus your Google email address (openid, email). It is used so that the members of a team you belong to can see when you are busy and find a time that suits everyone. FlaviBot only asks Google whether you are busy between two times, on the calendars you ticked, when a team member opens an availability view that includes you, and the answer is kept for a few minutes at most in a cache.
  • "Add my RSVPs to Google Calendar" additionally requests the ability to create, edit and delete events on your calendar (calendar.events). It is used to write the server events you mark as "Going" (or, on a server where you switch it on, every event of that server) into your own calendar, to update those entries when the event changes, and to remove them when you withdraw or the event is cancelled. FlaviBot only ever modifies the entries it created itself.

What we store: the OAuth access and refresh tokens Google issues, encrypted at rest (AES-256-GCM) and decrypted in memory only to call Google's API; the scopes you granted; your Google account identifier and email address (shown as "connected as" on your profile page); the identifiers, names and colours of the calendars you selected for availability; your Google calendar timezone; and, for each server event written to your calendar, the identifier of the entry we created, so we can update or remove it later. If you switch on "Add this server's events to my Google Calendar" for a server, we also store that choice, per server, so we know which servers' events to write.

What we never store: the titles, descriptions, guests, locations or any other content of the events in your Google calendar. Free/busy answers are never written to our databases and are never shown to anyone as anything more than "busy" or "free". We do not use Google user data for advertising, we do not sell it, we do not use it to train AI models, and no human reads it except with your explicit consent, for security purposes, or where required by law.

Retention and control: disconnecting Google from your profile page revokes FlaviBot's access at Google and deletes the tokens, the calendar selection and the Google account details we held. The timezone read from Google is kept as your calendar timezone until you change it on your profile page, and entries already written into your calendar are left in place, since they are yours. The same data is deleted by a data-deletion request (see "Your rights and controls"). You can also revoke FlaviBot's access at any time from your Google account's "Third-party apps & services" page, in which case FlaviBot stops calling Google and asks you to reconnect.

FlaviBot's use of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

What we do not collect

  • Your Discord account email address or phone number (we never request them from Discord).
  • Passwords (login goes through Discord; there is no FlaviBot password).
  • Bulk message logs: we do not archive the messages of your server.
  • Your private messages (the bot only processes DMs you deliberately send it, such as commands or interactions).
  • Card numbers or full billing details (held by the payment providers).
  • Precise location. The only location data we handle is the country of dashboard requests, for the security log.

Message content: the exact list

For transparency, here is every case where FlaviBot stores or processes the content of Discord messages:

  • Stored: suggestion texts, ticket subjects, ticket feedback comments, form answers and blog comments, as described above, and the notes a server's staff write in a ticket, kept with that ticket.
  • Processed but not stored: ticket transcripts. When a ticket closes, a transcript of the ticket channel can be generated and delivered as a file on Discord (to the ticket opener and/or the server's log channel). We generate it on the fly and do not keep a copy.
  • Processed by AI (premium): if a server enables AI ticket assistance, the messages written inside a ticket are sent to our AI provider (Anthropic) to draft a first reply, summarize the ticket, or suggest knowledge-base entries. We store the resulting summary or reply and token counts, not your raw messages. Neither we nor Anthropic use this content to train AI models. Servers that do not enable this feature are not affected.
  • AI characters (premium): if a server sets up an AI character, the recent messages of the channels where it speaks are held in a temporary cache for 2 hours and sent to Anthropic with the message it answers, so the character can reply in context. A character can also remember up to 20 short facts about each member who talks to it, kept until that member runs /persona forget; /persona optout stops every character from answering them. Neither we nor Anthropic use this content to train AI models.
  • Cached for logs: in a server whose logs record messages, or that has automations on edited or deleted messages, the text of recent messages (up to 1,500 characters) and the names and links of their attachments are held in a temporary cache for 48 hours, so a log can show what an edited or deleted message said. The entries expire on their own.
  • Translated on request: when a member uses the Translate command on a message, its text is sent to Google Translate and the translation is shown only to that member. We do not store it.
  • Temporarily sampled: when a server manager activates the autoresponder debug mode, a short excerpt (up to 200 characters) of messages evaluated by that rule is kept to help them debug the rule, and is deleted automatically about one hour after the debug session's last activity.
  • Matched in real time: features such as the autoresponder or the counting game read messages as they happen to decide whether to react, without storing their content.

How we use your data

  • To provide and operate the bot and dashboard features described above.
  • To manage premium subscriptions and match payments to accounts.
  • To secure the service: dashboard access auditing, abuse and fraud prevention, rate limiting.
  • To provide support when you contact us.
  • To understand feature usage and improve the service, using aggregated statistics.

Our legal bases under the GDPR, by purpose, are:

  • Contract: providing your account, the dashboard and the features you use.
  • Legitimate interest: securing the service (dashboard access auditing, abuse and fraud prevention), keeping features working, and improving the service with aggregated statistics. You can object to processing based on legitimate interest.
  • Consent: optional features you switch on, such as AI ticket assistance, registering your birthday, sharing your availability with your teams, or connecting a Google account. You can withdraw consent at any time.
  • Legal obligation: keeping payment records for accounting.

Automated decisions

FlaviBot does not make automated decisions that produce legal or similarly significant effects on you for its own purposes. Some servers configure automated actions (for example automod sanctions, or an autoresponder that kicks or bans accounts that are too new); these are decided by and under the responsibility of each server, and you can contact the server's staff about them.

Who can see your data

  • Server managers see the data of their own server: statistics, moderation cases, form submissions, ticket activity, configuration, and the audit log of who accessed their dashboard.
  • Publicly visible, depending on server settings: server leaderboards (username, avatar, level, XP, message counts, voice time) when the server enables its public leaderboard; giveaway winners (username and avatar) on public giveaway pages; approved blog comments; servers listed in the public discovery page. Global music charts are aggregated and never show who listened.
  • The public server calendar, when a server switches it on: the page at /calendar/<server id> shows the server's name, icon and the short description its managers wrote, plus, for each event a manager marked as public, its title, description, date and time, location and how many members are going (against the number of seats, when the event is capped). It is readable by anyone, without an account, and the calendar feed at the same address carries the same events to any calendar app without a token, so treat both as published to the open web. Who is going is never listed — only the count — and events left private are absent from both.
  • Our team has restricted, audited access to stored data, only as needed to operate the service, investigate abuse, or answer your requests. This can include accessing a server's dashboard for support or abuse investigation; such access is recorded in our internal audit trail.

Third parties we share data with

We never sell your personal data or the data collected through the bot, and we never use it to train AI models. Stripe, Tebex, Cloudflare, Anthropic and Backblaze act as our processors (on our instructions); Top.gg and .fmbot are independent services we disclose limited data to; Google is an independent service you may choose to connect yourself, and the one the Translate command uses.

  • Discord: the platform the bot runs on. Everything the bot posts or does happens through Discord's API and is subject to Discord's own Privacy Policy.
  • Stripe and Tebex: payment processing. They receive your Discord ID as a customer reference (and, on Stripe, the campaign tag of the link you came from, if any), collect your billing details directly, and return the billing email address to us.
  • Anthropic: AI processing for servers that enable AI ticket assistance or AI characters (the message content described above). This content is used only to produce the reply or summary in that ticket, or the character's answer; neither we nor Anthropic use it to train AI models.
  • Backblaze, Inc.: stores the audio files that server members upload to their server's Audio library (jingles, station IDs, the server's own songs), in Backblaze's Canadian data region (ca-east-006). Backblaze receives the file itself, stored under a name made of the server's ID and the file's own ID; the file's title and who uploaded it stay in our database in the European Union. A file is deleted from Backblaze, with every stored copy of it, when the server deletes it from its library, when the server's data is erased, and when the member who uploaded it asks for their data to be erased. These files are never public: FlaviBot plays them in voice, and no page offers a link to them.
  • Cloudflare: fronts our website and API (traffic, including your IP address, transits through it), and provides the Turnstile captcha used on some public pages (your IP is sent to Cloudflare to verify the captcha).
  • Google: only if you connect a Google account from your profile page. FlaviBot then calls the Google Calendar API on your behalf, with the access you granted, to read your free/busy status, your calendar list and your timezone setting, and, at the higher level, to write the events you RSVP to into your calendar. The event details FlaviBot sends to Google in that case are the server event's title, description, time and place. Google processes these requests under Google's Privacy Policy; see "Google Calendar (optional)" above for the scopes, what we store and the Limited Use commitment. Separately, when a member uses the Translate command on a message, the message's text is sent to Google Translate to produce the translation.
  • Top.gg: when you vote for FlaviBot there, Top.gg notifies us of your Discord ID so we can grant vote rewards.
  • .fmbot (Last.fm scrobbling): when the .fmbot Discord bot is present in a server where FlaviBot plays music, the Discord IDs of members listening are sent to .fmbot so it can scrobble the track for those who linked their Last.fm account with .fmbot. This sharing relies on our legitimate interest in providing the scrobbling integration; members who opted out with /privacy are excluded from it.

Our databases, analytics and error monitoring run on our own infrastructure in the European Union. The audio files of a server's Audio library are the one exception: Backblaze stores them in Canada. We may disclose data if required by law or to protect the safety of users and the service.

Where your data is stored and international transfers

Your data is stored and processed in the European Union (France), except the audio files uploaded to a server's Audio library, which Backblaze, Inc. stores in Canada (region ca-east-006). If you use FlaviBot from outside the EU, using the service means your data is transferred to and processed in the EU.

Some of the processors and services listed above (for example Stripe, Anthropic, Cloudflare, Google and Top.gg) are based in the United States, so limited data may be transferred there. Where that happens, the transfer relies on the recipient's EU-US Data Privacy Framework certification, or on the European Commission's Standard Contractual Clauses. We can provide the relevant clauses on request.

How long we keep data

Some data has a fixed expiry and is deleted automatically. Other data has no fixed expiry and is kept for as long as the bot is used on the server, because the feature needs the history to keep working. You can remove your data at any time with the /privacy command or by requesting deletion (see below).

Data with a fixed expiry (deleted automatically):

  • Dashboard security logs (IP, user agent): 180 days.
  • Invite tracker join and leave events (the analytics log): 90 days.
  • Automation execution logs and AI usage telemetry (token counts): 90 days.
  • Counting game events: 12 months.
  • Interaction usage events (which commands, buttons, menus and pages were used, and whether they succeeded) and music player sessions: up to 14 months. Server install and subscription facts (when the bot was added to or removed from a server or an account, premium subscription events, and votes) are kept. Summaries derived from the events (on which days you and a server were active and how many actions that was, when each activity session started and ended, which servers it touched and how many actions and pages it had, and the date you or a server first used the bot) are kept for as long as the bot is used. All of it is deleted with the rest of your data on request.
  • Saved roles of members who left (persistent roles): the duration configured by the server, at most 365 days.
  • Technical caches: from a few minutes up to 14 days.

Data kept indefinitely, for as long as the bot is used on the server:

  • Invite tracking: the record of who invited each member is kept even after that member leaves, so features like rejoin detection and fake-invite counting keep working. Per-inviter counters are kept the same way.
  • Levels and XP, and music listening history.
  • Moderation history (warnings, notes and their reasons), so a server keeps its case history.
  • The short facts an AI character remembers about a member (up to 20 per character), until that member runs /persona forget.
  • Server configuration and the content you set up (welcome messages, autoresponders, tickets, and similar).
  • Feature usage events (a record of when features act), which power usage analytics.

This data is removed when you or a server owner requests deletion (see below), or, for a server, when you ask us to erase it after removing the bot.

Payment records are kept for as long as required for accounting and legal purposes; when an account is deleted, they are anonymized (name, email and Discord ID removed).

Your rights and controls

  • Opt out of statistics: run the /privacy command to stop the collection of statistics about you across all servers: your message counts, voice activity and music listening, and the XP, levels and coins they earn you (coins from commands such as /work or /daily are not affected). Opting out also deletes the message, voice and listening statistics already collected about you and excludes you from Last.fm scrobbling. The dashboard pages you browse are then counted in our usage analytics without your identity: no account, no server and a time rounded to the minute. The opt-out does not cover the log of what you do with FlaviBot: the commands you run, the buttons, menus and forms you use in Discord, your dashboard sign-ins and saved settings, your web player actions and your votes keep naming you, like the command usage log, feature usage events, lifecycle events (premium included) and a server's history of settings changes. We keep that log to run the bot, to investigate problems and to help you when you contact us; a deletion request (below) erases it.
  • Remove your birthday or other submitted content at any time through the same commands or dashboard pages used to add them.
  • Disconnect Google from your profile page at any time (or revoke FlaviBot in your Google account), and switch off availability sharing or delete your unavailability blocks there too.
  • Log out to end a dashboard session, and revoke FlaviBot's access at any time in your Discord settings (Authorized Apps).
  • Access, rectification, erasure, portability, restriction, objection: you can exercise all rights provided by the GDPR and French data protection law by contacting us on the Discord support server or at contact@flavibot.xyz. We will verify that you control the Discord account concerned before acting.
  • Withdraw consent: where we rely on your consent, you can withdraw it at any time, without affecting processing already carried out.
  • Deletion: you can start a deletion request from the /privacy command (which points you to our support channels), on the Discord support server, or by email. Deletion requests are executed after a grace period (approximately 30 days, mirroring Discord's own account deletion window) during which you can cancel the request. Deletion covers our databases and caches. Payment records we must keep for accounting are anonymized instead; templates and presets you published to the community marketplaces may remain available in anonymized form so other servers' installs keep working; and a minimal internal audit record of the deletion itself (including the account identifier) is retained to demonstrate that it was performed.
  • Server owners can likewise request the deletion of all stored data of their server, for example after removing the bot.
  • You may also lodge a complaint with your data-protection authority. In France this is the CNIL (cnil.fr); if you are in another EU country you can contact your national authority (list at edpb.europa.eu), and in the UK the ICO (ico.org.uk).

Cookies

The website uses a small number of first-party cookies:

  • A session cookie to keep you signed in (up to 30 days). It contains a random identifier, no personal data.
  • A language cookie to remember your language choice.
  • Preference cookies for small interface choices (such as dismissed banners).

We do not use advertising or cross-site tracking cookies, and our analytics are cookieless. Because these cookies are strictly necessary for the service or simple preferences, no consent banner is required; you can delete them at any time in your browser.

Security

Data is stored on our own infrastructure with access restricted to the FlaviBot team and logged in an audit trail. Sensitive secrets such as custom bot tokens are encrypted at rest, and traffic is encrypted in transit. No system is perfectly secure; if a breach affecting your personal data occurs, we will notify affected users through Discord and, where required, the supervisory authority.

Children

FlaviBot is not directed at children. The minimum age to use Discord is 13 (higher in some countries). Where a feature relies on consent, the digital-consent age is 15 in France and 16 in other EU countries unless lowered locally; below that age, that consent must be given or authorized by a parent or guardian. We do not knowingly collect data from a child below the applicable age; if you believe a child is using the service, contact us and we will remove the data.

Changes to this policy

We may update this Privacy Policy as the service evolves. The "Last updated" date at the top reflects the latest version, and significant changes will be announced on our Discord support server. Changes are effective when posted on this page.

Contact us

If you have any questions about this Privacy Policy or your data, you can contact us: