Privacy Policy
Last updated: August 4, 2026
1. Introduction
This Privacy Policy explains how HAF Bot ("Helpful as F**K", the "Bot", "we", "us", "our") collects, uses, and protects information. "We" and "us" refer to the HAF Bot operator, who is the data controller for information processed by the Bot.
2. Information We Collect
We collect and process the following categories of data, which are necessary to operate the Bot:
- Discord identifiers — user IDs, guild IDs, channel IDs, role IDs, and message IDs, used to apply configuration and enforce rules.
- Discord profile data — when you sign in to the admin dashboard with Discord, we receive your display name, email address, and avatar URL (via Discord OAuth with the
identify,email, andguildsscopes). - Authentication and session data — OAuth access and refresh tokens, session tokens, IP address, and user agent, stored to keep you signed in.
- User-generated content — LFG posts, marketplace listings, suggestion submissions, and the answers and messages your members post in tickets.
- Ticket transcripts — the full message content and attachments from a ticket channel, rendered as an HTML transcript and archived (including attachments) in Cloudflare R2 object storage when a ticket is closed.
- Evidence Vault records — when staff hide a message, the Bot stores the source message text, extracted links, attached images (archived in R2), author and hider identifiers, and any inferred subject identifiers (Discord, Steam, Xbox, PlayStation, or CfTools IDs).
- Platform link data — SteamID64 (via Steam OpenID), Xbox gamertag/XUID (via Microsoft OAuth), and self-reported PSN Online ID. For Steam links, optional game ownership data (game names and playtime) may also be stored.
- Image Rules metadata — confidence scores and the Discord CDN URL for classified images. Image files themselves are not stored by Image Rules; only the Discord-hosted URL is retained.
- Configuration data — the settings you submit through the admin dashboard for each feature.
- Product analytics — cookieless public page views and pseudonymous Guild-level setup and feature outcomes. Public events may include a canonical page path, referrer domain, allowlisted campaign values, coarse device and browser family, and country. Guild events use an HMAC-derived identifier and never include Discord content or raw Discord identifiers.
3. How We Use Your Information
We use this information to operate and provide the Bot's features, authenticate administrators, enforce guild rules, generate transcripts, link external platform identities, display live game server stats, and understand aggregate product adoption and friction. We do not use your information for advertising.
4. Data Sharing and Sub-Processors
We do not sell your data. To provide the Bot's features, information is shared with the following third parties:
- Discord — via the Discord API and Gateway, as required for all bot functionality.
- Steam / Valve — via Steam OpenID (to verify SteamID64 ownership) and the Steam Web API (for player counts, optional game ownership checks, and ban lookups).
- Microsoft / Xbox Live — via OAuth and Xbox Live APIs, to verify and resolve Xbox identities when a member links an Xbox account.
- AI classifier service — when Image Rules is enabled, the Discord CDN URL of an image is sent to the operator-configured classifier endpoint. The image file itself is not uploaded by the Bot; the CDN URL is sent for classification.
- AI transcript summarizer — when AI Transcript Summary is enabled, the text of a closed ticket's transcript is sent to the operator-configured summarizer endpoint to produce a short summary.
- Sentry — if the operator has enabled error tracking, error reports may include request metadata such as IP addresses or user identifiers.
- PostHog — managed product analytics receives only the bounded cookieless and pseudonymous events described above. Autocapture, session replay, surveys, and person profiles are disabled. Processing occurs in the explicitly selected PostHog region.
- Google Fonts — the admin dashboard and landing page load the Oxanium font in your browser, which sends your IP address and user agent to Google. This is a browser-side request and no Bot data is transmitted.
Steam, Xbox, and PlayStation are third-party services with their own privacy policies; linking an account is subject to those services' terms.
5. Data Retention
Feature configuration and platform link records are retained until you delete them through the admin dashboard or remove the Bot from your guild. Pending (uncompleted) platform links expire automatically. Timed role assignments expire on schedule.
Ticket transcript links expire automatically after 30 days. The archived transcript and its attachments are automatically deleted from R2 after 365 days. Evidence Vault records are not automatically deleted and must be removed manually by an administrator or via a request to our support server.
We do not currently offer an automated account-wide data export or erasure endpoint. To request access, correction, or deletion of your data, please contact us through the support server (see Contact below).
Product analytics events expire after 13 months. A Guild administrator may disable future Guild product analytics using the Share anonymous product usage setting. Earlier analytics deletion may be requested through the same support privacy-request process.
6. Security
We take reasonable measures to protect your data, including signed session cookies and restricted access controls for the Evidence Vault. However, no internet transmission or storage is entirely secure, and we cannot guarantee absolute security. Discord bot tokens are stored in Cloudflare Secrets Store rather than the database.
7. Your Rights
Depending on your jurisdiction, you may have the right to access, rectify, or request deletion of your personal data. Because the Bot does not provide a self-service erasure endpoint, please exercise these rights by joining our support server and contacting staff. We will respond within a reasonable timeframe.
8. Cookies
The admin dashboard uses essential session cookies to maintain your login state: an HMAC-signed operator session cookie and Better Auth session cookies. These cookies are HTTP-only and used solely for authentication. Product analytics sets no cookies, uses no browser storage or fingerprinting, and honors Global Privacy Control and Do Not Track for browser-originated events. No advertising or tracking cookies are set by the Bot. The Google Fonts request made by your browser may set its own cache headers, but the Bot does not control these.
9. International Data Transfers
The Bot runs on Cloudflare's global edge network and PostHog analytics is processed in the region selected by the operator. Data may be processed and stored in countries other than your own. By using the Bot, you consent to these transfers in accordance with this Privacy Policy.
10. Children's Privacy
Discord requires users to be at least 13 years old (or the minimum age required in their country). The Bot is not directed at children and does not knowingly collect data from anyone under that age.
11. Changes to This Policy
We may update this Privacy Policy from time to time. We encourage you to review it periodically. Continued use of the Bot after changes constitutes acceptance of the revised policy.
12. Contact
If you have any questions about this Privacy Policy, please join our support server.