Privacy Policy
Last updated: August 12, 2026
This Privacy Policy explains what data Clan-Man collects, what we do with it, and what you can ask us to do about it. It covers the website, the app, and the Discord bot. Clan-Man is operated by Syncs App Ltd., a company registered in the United Kingdom.
Sign-in is Discord and nothing else. You never give us a password, so we never see one. There is no email address anywhere in our database. There are no analytics, no tracking pixels, and no advertising identifiers in this product. We do not sell your data, and we do not share it with advertisers.
Two companion documents sit alongside this one: the Terms of Use, which covers the agreement itself, and the AI Disclosure, which covers the one place Clan-Man calls an AI model.
1. What we collect
This is the complete list.
Your Discord identity
- Your Discord user ID, username and avatar hash, plus the date the record was created. That is the whole profile, and it refreshes from Discord each time you sign in.
- We ask Discord for two scopes: identify and guilds. We do not request your email address, Discord does not send us one, and there is no email column anywhere in our database.
- Your Discord access and refresh tokens, held encrypted at rest. They are never returned by any part of our API.
The clan and match content your officers put in
Your clan decides what goes in here.
- Matches: title, opponent, side, size, times, map, briefing text, result and score.
- Sign-ups: whether someone is in, tentative or out, their role, a position label, and free-text tasks.
- Players: the in-game gamertag, optionally a Discord ID, optionally a game-server player ID.
- Rosters: groups, squads, comms channels, and per-group briefing notes.
- Tacmaps: every variant and every element drawn on it.
- Reusable roster templates and saved plans.
- Clan settings: officer role IDs, sign-up role templates, colours.
- A record of the Discord messages the app posted on your behalf.
- Invite codes: the code, who issued it, an optional note, and which account and clan spent it. A spent code outlives the clan it created, because we keep the record of how a clan came to exist even after the clan is gone.
Player records created from Discord
When someone clicks a sign-up button on the app's post in your Discord server, we record their Discord user ID and their display name (the server nickname if they have one, otherwise the global name, otherwise the username) as a player of that clan. This happens even if that person has never opened the Clan-Man website and has never signed in. There is no way to take a sign-up without recording who it came from.
The optional match-stats import
An officer can paste the URL of their own match-stats server (a CRCON scoreboard) and we fetch it. Nothing is imported unless an officer asks for it.
We store the raw scoreboard, because it is the source of truth the figures are recomputed from. Be aware of what that payload contains: the in-game names of everyone who played that match, including the opposing team. One field (steaminfo) is stripped before storage. If you do not want that stored, do not import the stats.
Cookies
Three sign-in cookies and two preference cookies. There are no tracking cookies of any kind. The cookies section below lists all five by name and purpose.
Server logs
Standard request logs, produced in the ordinary course of running a server: timestamps, request paths, status codes, IP addresses, browser user-agents. We use them to keep the service running and to investigate problems.
2. What we do not collect
Most of these are things you would reasonably assume we do collect.
- No email addresses. We never ask for one, and Discord never gives us one.
- No passwords. Discord handles sign-in. We never see a password, in any form, at any point.
- No message content from your Discord server. The bot runs without the Message Content intent, so it cannot read your messages.
- No analytics, no product telemetry, no behavioural tracking. There is no analytics provider wired into this product.
- No advertising identifiers, no ad network, no tracking pixels, no data broker.
- No location data beyond what an IP address implies in ordinary server logs. No device location, no GPS.
- No payment card details. Payment happens on Stripe's own checkout page, and Stripe is also the merchant of record; card numbers never reach our servers. All we keep is Stripe's identifier for the clan's customer and subscription, so we know the plan is paid.
3. What the Discord bot can and cannot see
Connecting Clan-Man to your Discord server means installing a bot.
- Permissions requested at install: View Channel, Send Messages, Embed Links, Attach Files, Mention Everyone, and Send Messages in Threads. It does not request Read Message History, Manage Messages, or Manage Threads.
- Gateway intents: Guilds only. It runs with no privileged intents, and in particular without the Message Content intent. It cannot read the content of your messages, and there is no code anywhere in Clan-Man that tries to.
- What it reads from your server: the server name, icon and owner; the list of roles; the role IDs of a specific member, to answer whether that person is an officer; and the channels and threads it is allowed to post in.
- What it posts: the sign-up post for a match (title, details, and the list of player display names grouped by in, tentative and out), and a plan-share post (text plus the tacmap images an officer uploads).
- It never registers slash commands, and it only posts when someone in your clan asks it to. Two things happen without anyone asking: the buttons on a sign-up post freeze once that match has started, and, if your clan switched on automatic cleanup, the sign-up post for a finished match is deleted, either on a daily sweep or the next time an admin opens the app.
- Replies to button clicks are ephemeral: only the person who clicked sees them.
- Images shared to Discord are relayed through our server. They are not stored on it.
4. How we use the data
- To run the app: sign you in, show you your clan, collect sign-ups, build rosters and tacmaps, publish briefings, and post to your Discord server when you ask it to.
- To decide what you are allowed to see: your officer status is read from the roles in your clan's own Discord server.
- To keep the service working and secure: logs, debugging, and dealing with abuse.
- To answer you when you get in touch.
- To meet legal obligations.
That is the whole list. We do not profile you and we do not build an advertising audience. One narrow slice of match-stats content does reach an AI model.
5. The one AI call
Clan-Man makes exactly one call to an AI model. It happens on our server, during a match-statistics import, as a single HTTPS request to OpenAI. It runs only when our own code has already found something worth flagging about a group, and only if an API key is configured on the service. No key, no call, and the import still succeeds. Nothing flagged, no call.
What we send, per flagged group, written out field by field in code rather than filtered out of something larger:
- The group's internal id and its name.
- The brief the group's admin wrote before the match.
- The findings our own code computed: a machine key, plus a sentence the app has already written and already shows you.
What never leaves the app:
- Gamertags, ours and the opposition's.
- Any player row and any Discord identity.
- Kill and death counts, weapon tables, the score, the map, which side we played.
- Member tasks, and the raw scoreboard from your stats server.
The honest caveat: a brief is free text an admin typed, and we do not control what is in it. An admin who types a player's name into a group brief sends that name.
The model's answer has to match a strict schema or it is thrown away, so a failure means no sentence and never a failed import. Nothing is used to train any model. The AI Disclosure covers the same call in more detail.
6. Keeping clans apart
One clan must never see another clan's sign-ups, rosters, tacmaps or match plans. This is the part of Clan-Man we are strictest about.
- Every piece of data belongs to one clan, and every request is checked against your membership of that clan before anything is read. Changing an ID in a request gets you nowhere.
- Officer powers follow the roles in your own Discord server, not a list we keep by hand. Lose the role and you lose the ability to change anything, within about a minute.
- Read access lags behind that. Someone who has lost the role keeps it until they next open Clan-Man. Removing them from the Discord server, or asking us, closes it for good.
Your clan's content is not encrypted end to end. We hold it in a form we could read.
7. Public briefing links
An officer can publish one match to a public address, so players can read the briefing without signing in to anything. A published link works exactly like a shared Google Doc or Google Sheets link: anyone who has it can open it, there is no password on it, and once it is pasted somewhere you no longer control who has it.
- What a published link shows: the match details and map, the briefing text and per-group notes, the roster with each player's gamertag, position and tasks, the reserves, the comms channels, and every tacmap variant.
- What it does not show: the sign-up pool, who said yes, no or maybe, Discord IDs, your clan's identifier, or any identifier that means anything anywhere else.
- The address is the match title plus eight random hex characters. Unlisted, not secret.
- An officer can unpublish at any time and the link stops working immediately. Until then it does not expire on its own.
- Publishing the same match again reuses the same address, so a link you shared once will work again.
- Unpublished links and links that never existed return the identical "not found", so the link space cannot be probed to learn that a clan is planning something.
Treat a published link as public. Once it is out, it is on your players and your officers not to pass it outside the clan. The app can control who signs in; it cannot control who a teammate forwards a link to.
8. Who can see your data
Your clan
Only officers sign in to Clan-Man. Officers are the people holding one of the Discord roles your clan nominated as officer roles, plus anyone with Administrator on that Discord server and the server owner. Everyone else in the clan takes part through the sign-up buttons in Discord and the briefing link, and never signs in at all.
Anyone with a published link
For as long as the match stays published.
Syncs App Ltd.
There is a small service-owner backoffice. It can list clans, with the name, Discord server ID, officer roles, match titles, and the names of templates and saved plans; open one match to see its plan exactly as a player would, including matches that were never published; see the full statistics report for a match that has one, including the machine-written sentences on it, which is a view your own admins have and your players do not; and delete a clan. Template and plan bodies never reach it.
More plainly: we run the servers and the database, so the people who operate Clan-Man can technically reach what is in it. That is true of every hosted product. We open a clan's content when something needs fixing, and for no other reason.
9. Clan neutrality
Clan-Man is not operated by, for, or on behalf of any clan, team, league or tournament. No clan owns it, funds it, or directs it.
- Clans that the people building Clan-Man happen to play for are customers of the product like anyone else, with exactly the same access as any other clan: their own data and nothing more.
- No clan gets preferential access, earlier features, or any view into another clan's data. Everyone is on the same footing.
- The operator access described above exists to run and support the service. It is never used to look at a clan's plans, and never for competitive advantage.
- Playing a match against a clan that uses Clan-Man gives nobody any sight of their plans. There is no route by which one clan's data reaches another.
10. Storage and security
- The website runs on Vercel. The server and the PostgreSQL database run on Railway. Traffic is served over HTTPS.
- Discord access and refresh tokens are encrypted at rest with AES-256-GCM, under a key that exists only in the server environment. They are never returned by any API response, and if Discord rejects a refresh we delete the stored token.
- Sessions are an opaque random token good for 7 days, plus a short-lived signed one good for 10 minutes. Both cookies are httpOnly, and secure in production. Logging out deletes the session record on the server.
- Honest caveat: a session that has just been revoked, by logging out or by us, can stay usable for up to ten minutes, because the short-lived token is checked by its signature rather than looked up on every request.
- When an officer gives us a stats URL to fetch, the fetch is deliberately constrained: HTTPS only, no redirects followed, a 10-second timeout, and a 4 MB cap. A pasted URL cannot be used to make our server reach somewhere it should not.
We have not been audited, certified or penetration-tested, and we are not going to imply that we have. No method of storage or transmission is completely secure, so we cannot guarantee absolute security. What is written above is what the code does, and if that changes, this page changes with it.
11. Third parties
The complete list of outside parties involved when you use Clan-Man:
- Discord: sign-in, the bot, the posts it makes, and avatars loaded from Discord's CDN.
- Vercel: hosts the website.
- Railway: hosts the server and the PostgreSQL database.
- Stripe: takes payment for a plan, on its own checkout page, and is the merchant of record for the sale. It sees whatever you give it there: card, billing address, and the country it needs to work out tax. We send it the clan's identifier so the payment can be matched to the right clan, and get back identifiers for the customer and the subscription. Nobody who never buys a plan touches Stripe at all.
- OpenAI: receives one request during a match-statistics import, and only when our own code has flagged something about a group. It gets that group's id, its name, the pre-match brief, and the findings we computed ourselves, so a model can write one joining sentence. Nothing else about the match or the players goes with it. We do not use any of it to train anything, and OpenAI's API terms say data sent through their API is not used to train their models.
- Google Fonts: our public pages, meaning the landing page and these legal pages, load three webfonts from Google, so your browser contacts Google when you open one of them. The signed-in app does not.
- The stats server you point us at: contacted only when an officer pastes a stats URL, and only that server.
- A private Discord channel of ours: the "Request access" form on the landing page is delivered there. It carries what you typed (clan name, Discord handle, optional invite link) together with your IP address and browser user-agent. It stays in that channel, and does not go into a mailing list or a CRM, because we do not have either.
There is no analytics provider, no error-tracking service, no email provider and no advertising network. Nothing is sold, and there is nobody on this list to sell it to.
12. Retention and deletion
- The owner of the clan's Discord server, and only they, can delete the clan from inside the app. That deletes everything under it: members, players, matches, sign-ups, rosters, tacmaps, templates, saved plans and stats imports. It is immediate and irreversible, and we cannot undo it for you.
- Officers can delete individual matches, rosters, squads, tacmap elements, templates, plans, stats imports, and the Discord posts the app made.
- Apart from expired sessions, which are cleared automatically, nothing expires on a schedule, with one exception: a clan whose paid plan has lapsed is deleted after the grace period the Terms of Use describe, and we tell you before that happens. Otherwise matches, briefings, rosters and stats imports are kept until somebody deletes them, or until the clan is deleted.
- Server logs and the "Request access" messages described above are kept as long as they are useful for running the service and answering you. Ask us and we will delete a request-access message from that channel.
To have your personal data deleted, email ivan@hyggr.ai. We will do it within 30 days, except anything we must keep to meet a legal obligation.
13. Your rights
If you are in the UK or the EU, the UK GDPR and the GDPR give you rights over your personal data. We handle requests the same way wherever you are.
Our lawful basis: we process your Discord identity and your clan's content to perform the contract you or your clan entered into by using Clan-Man. Server logs, anti-spam checks on the request-access form, and keeping the service secure rest on our legitimate interests in running it safely. We do not rely on consent for anything, because there is nothing here you would need to consent to separately.
- Access: ask what we hold about you.
- Correction: ask us to fix something that is wrong. Your Discord profile refreshes itself on every sign-in, so most corrections happen on Discord.
- Deletion: ask us to delete your personal data, as described in the previous section.
- Export: ask for a copy of your data in a portable form.
- Objection and restriction: ask us to stop or limit a particular use.
To exercise any of these, email ivan@hyggr.ai. Because we hold no email address for you, we may ask you to confirm your Discord identity before we act on a request about an account. You also have the right to complain to a data protection authority: in the UK that is the Information Commissioner's Office, and in the EU it is your local supervisory authority.
14. International transfers
We are a UK company, and the providers listed above run infrastructure in several countries. Your data may be processed and stored in countries other than yours, including the United States. Where required, we rely on the appropriate safeguards for such transfers.
15. Children
Clan-Man is not for anyone under 16, and we do not knowingly collect data from anyone under that age. If you believe someone under 16 is using it, email ivan@hyggr.ai and we will remove the account and its data.
16. Cookies
Five cookies, five purposes. None of them tracks you, and the app sets no third-party cookies.
- refresh: the opaque session token that keeps you signed in for up to 7 days. httpOnly, so page scripts cannot read it.
- access: the short-lived signed token that authorises each request, valid for 10 minutes and renewed as you use the app. Also httpOnly.
- oauth_state: a one-off value that lives for ten minutes during sign-in, so that the reply coming back from Discord is the one we sent you for. Also httpOnly.
- clanman.lastClan: remembers which clan you looked at last, so the app opens where you left off. It holds no secret, and page scripts can read it.
- tz: your browser's time zone, so match times show in it. Set by the page itself, readable by it, and it holds nothing else.
You can clear or block cookies in your browser. Blocking the first two means you cannot stay signed in.
17. The demo
The demo needs no sign-in and writes nothing to our servers, and you can open it at /demo. Everything you change in it lives in your browser tab's memory, and reloading the page resets it. It touches no real clan's data, and nothing you type into it reaches us, beyond the ordinary server logs of the pages your browser loaded.
18. Changes to this policy
We may update this policy. When we do, we will change the "Last updated" date at the top. If a change is significant (a new third party, a new category of data, anything that would surprise you) we will say so on the site rather than quietly editing the page. Continuing to use Clan-Man after a change means you accept the updated policy, as the Terms of Use also say.
19. Contact
Questions, data requests, or anything else about this policy: ivan@hyggr.ai. Clan-Man is operated by Syncs App Ltd., a company registered in the United Kingdom.