1. The short version
We run a voice channel bot. We store the minimum needed to run it, which is mostly IDs, settings, and who owns which channel. Section 2 has the full list. We never read or store your message content. The bot doesn't even ask Discord for that data.
2. What the bot stores
To make voice channels appear and disappear on cue, we keep:
- Discord server, channel, and user IDs
- Per-server settings and channel name templates
- Channel ownership records, so we know who owns which temporary room, and the order people joined it, so ownership can pass to whoever has been there longest
- The name and voice status we last set on a channel, so we can tell when they need changing. Under the default templates those strings contain the room owner's display name and the game the room is playing
- The display name of whoever created a room, and any nickname you choose for yourself with
/nick - The ID of whoever set the bot up in a server, so we know who to tell when its permissions break
- Member-count totals, sampled daily and kept for 45 days, used only to work out your pricing tier
- Subscription and entitlement status
- Operational logs that contain IDs, so we can debug when something misbehaves
3. What the bot processes but does not store
- Voice join and leave events. We act on these in the moment to create or clean up channels, and then they're gone.
- Presence and game names. We read your activity live, only while you're in a channel the bot manages, and only to render that channel's name. We keep no history of it and build no profile of anyone. What that render produces can end up in the stored channel name and voice status, which is covered above.
- Message content. This is never accessed. The bot doesn't request the permissions or intents that would let it read your messages.
4. The website and dashboard
Signing in uses Discord OAuth with the identify and guilds scopes only. That gives us your Discord ID, username, avatar, and the list of servers you're in, and nothing more. We store the first three, along with the tokens that keep you signed in and let us refresh your server list. We use essential session cookies required to keep you signed in. We do not use advertising cookies or third-party analytics cookies.
5. Payments
Payments are handled by Paddle as the merchant of record. Your card details go to Paddle, never to us, and we could not see them if we wanted to. What we do receive and store is the subscription's status, tier and renewal date, the Paddle customer and subscription IDs that link it to your servers, the amount actually charged with its tax and currency, the country the payment was billed from, and, if a payment is later refunded or reversed, the details of that adjustment. Your dashboard needs those to show you what you paid, and a refund needs them to reach the right servers. Going the other way, we pass Paddle the IDs of the servers you're paying for, so the payment can be matched to them when it comes back to us. Managing or cancelling a subscription happens on Paddle's own hosted portal, reached from your dashboard.
6. Where data lives
Data is stored in managed Postgres, hosted on Fly.io infrastructure, and encrypted both in transit and at rest. We take encrypted backups and keep them with Backblaze B2, for up to six months. Depending on where Fly.io and Backblaze provision infrastructure, your data may be processed outside your country of residence.
7. The template assistant
/templateassistant is optional and only runs when a server admin asks it to. When they do, we send what they typed to our model provider, OpenAI, together with the server's current channel name and status templates, its "no game" label, and the Discord language setting of the person asking. We send nothing else. Message content, member names, presence data, and account identifiers are not included.
OpenAI acts as a subprocessor for that one request and handles it under their API terms. We do not keep the description after the reply comes back. What comes back is a name template, which the admin previews and approves before it changes anything. If you self-host, the assistant is off until you configure a model endpoint yourself, and in that case nothing reaches us or OpenAI unless you point it at them.
8. Retention
We keep a server's data while the bot is in that server. If the bot is removed we keep that server's configuration rather than deleting it right away, for two reasons: servers often remove and re-add the bot, and a paid subscription can outlive the bot's presence, so deleting the record would hide the cancel button from someone still being charged. Ask us and we'll delete it. Encrypted backups are kept for up to six months, so data can survive in those for that long after we remove it from the live database.
9. Lawful basis for processing
We process most data because it is necessary to provide the service you've requested. Some operational logging is processed for our legitimate interests in maintaining the reliability and security of the service. Where we rely on consent, such as optional communications, you may withdraw it at any time.
10. Your rights
You can request access to, correction of, or deletion of your data through the support server. We honor GDPR and POPIA-style rights for everyone, no matter where you live.
11. Self-hosting
You can run AVC yourself, in which case no data ever reaches us. The AGPL-licensed code is the ultimate privacy guarantee. Don't take our word for any of the above. Read it, or host it.
12. Children
Discord's minimum age requirements apply to use of the bot and this site.
13. Changes
If we change this policy, we'll update the date at the top and note anything significant. We won't quietly expand what we collect.
14. Contact
For questions, requests, or concerns, email us at [email protected] or reach us in the support server. AVC is operated by Poly Haven (Pty) Ltd, a private company incorporated in South Africa.