Privacy Policy
What personal data Bloopbot holds, why it holds it, how long it keeps it and what you can ask us to do with it.
Who we are
Bloopbot is a chat bot and stream-automation product for Twitch and Kick, operated by Bloop Software Ltd, a private limited company registered in England and Wales (company number 17476185). For account, billing, security and service-operation data, the controller is:
Bloop Software LtdTrading as BloopbotCompany number 17476185, registered in England and WalesRegistered office: 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United KingdomEmail: [email protected]Product: https://bloopbot.comThis policy explains what personal data Bloopbot holds, why it holds it, how long it keeps it and what you can ask us to do with it.
This policy applies to Bloopbot at https://bloopbot.com and its dashboard, public channel pages and connected services. It does not replace the privacy policies of Twitch, Kick or the other platforms you connect.
The personal data we collect
Bloopbot only works after you link a Twitch or Kick account, so most of what it holds starts with that link. We receive account and channel information from Twitch, Kick and the platforms you connect, content from you and your viewers, and activity information when the service runs.
| What it is | Why we have it |
|---|---|
| Your Twitch account: Twitch user id, login, display name, the OAuth scopes you granted, and the times your link was created, updated, revoked or re-authorised | To sign you in, to know which channel you are allowed to manage, and to tell you when a permission is missing |
| Twitch OAuth access and refresh tokens for your channel | To act on your channel through the Twitch API: chat, events, moderation, channel points, clips, markers, polls, predictions and schedule |
| Your Kick account, only if you sign in with Kick or connect Kick to a channel: Kick user id, username, the OAuth scopes you granted, and the times your link was created, updated or disconnected. Kick does not give us your email address | To sign you in with Kick, to know which Kick channel belongs to your Bloopbot channel, and to tell you when a permission is missing |
| Kick OAuth access and refresh tokens for your Kick account | To act on your Kick channel through the Kick API: chat replies, event subscriptions, moderation (timeouts, bans and deleting messages), channel rewards and redemptions, stream title, category and tags, ads and the KICKs leaderboard |
| Your own chat permission, only if you allow the Bloopstream app to chat as you: for Twitch or Kick, your account id and login on it, the permission you granted, and its access and refresh tokens, encrypted before they are stored. Streamers, editors and moderators each allow their own | So messages you type in Bloopstream’s chat box post under your own name, not the bot’s |
| Bloopstream notification registrations, only if you turn on notifications in the Bloopstream app on a phone or watch (Apple Watch or Wear OS): the device’s push token from Apple or Google, whether it is a phone or a watch, and which alerts and watch-face updates it wants. Each is kept with the Bloopstream sign-in that registered it | To send that device the stream alerts and watch-face updates you asked for |
| Kick viewers and Kick events, only for channels with Kick: each viewer’s Kick user id, username and profile picture address, and the chat messages, follows, subscriptions, gifted subscriptions, KICKs, reward redemptions and bans Kick sends to Bloopbot. A Kick viewer is kept apart from a Twitch viewer, even when they are the same person | To run your flows, chat box, loyalty, moderation and the other features on Kick as they run on Twitch |
| Viewer sign-in sessions: Twitch id, login, display name, avatar address, session-token hash and sign-in/expiry times | To let a viewer use their own prize claims and other signed-in channel pages |
| Prize fulfilment: the winner’s Twitch identity, prize and claim status, and, for a physical prize, the name and shipping address they enter, encrypted at rest | To let the streamer deliver a prize; the streamer can view the shipping address |
| Public channel pages and marketplace profiles: the names, links, images, biography, creator attribution and other information you choose to publish, plus your custom domain if you add one | To show the public pages and listings you create |
| Connected Discord servers: server id, name, icon, the Twitch channel it belongs to, connection/check times and warnings | To let flows send messages to the Discord server you connected |
| Your bot account(s): Twitch user id, login, display name, granted scopes and that account’s tokens | To send chat messages and run the actions your flows ask for |
| Editor records and invites: an editor’s Twitch user id, login and display name, who invited them, and a hashed, single-use, seven-day invite token | To let the people you choose help run your channel, and to expire unused invitations |
| Channel configuration: built-in command settings, keywords, moderation filters and escalation settings, nuke reports with the moderator who ran them, the channel’s own Regulars and custom role lists with their members, song-request settings and blocked-user lists | So your channel behaves the way you configured it |
| Viewer data for your channel: loyalty points balances and lifetime totals, watch time, subscriber flags, giveaway entries and tickets, quotes and who added them, and the song queue with who requested each track. Whether a viewer is a VIP or a moderator is read from Twitch when a message arrives and is not stored by Bloopbot | To run the loyalty, giveaway, quote and song-request features you enable |
| Flow data: the flows and flow versions you build (including their author), run logs with each step’s outcome, per-viewer flow variables, and the small amount of channel data flows remember from events | To run your automations and to show you what happened |
| Audit log: who changed what in your dashboard (a Twitch user id, login, the action, the entity and a summary), the time, and nothing else | So you can see who changed your channel settings |
| AI usage records: per channel, per AI feature, per day, the number of requests, the input and output tokens, and the cost | To meter AI features, keep them inside their limits and understand what they cost |
| Highlights training labels, only for channels with the Highlights add-on: for each moment found, the broadcast and time window, the numbers the finder measured, the AI rating, whether you clipped, dismissed or watched it, and your Good clip? yes or no. It holds no transcript, no chat and no title | To improve which moments Highlights finds. It is used for no other purpose and is never shown to anyone else |
| Widget and overlay credentials: hosted widget keys, uploaded widget media with its original file name, per-channel overlay, alerts and live-source read tokens | To serve your OBS overlays and widgets and to let them read your channel’s data |
| Spotify data, only for channels that connect Spotify: your Spotify app client id and encrypted secret, the linked account’s id, display name, scopes and tokens | To search for and queue the songs your viewers request |
| Connected social accounts, only for channels that connect one: for each of Bluesky, Mastodon, X, Threads, Instagram and Facebook Pages, the account’s id and handle, the permissions you granted, its encrypted access and refresh tokens, and the id and address of each post Bloopbot published there. For Mastodon, also the address of the server you chose. For X, also a balance ledger of your top-ups and the charges taken for posts | To publish the posts your flows send to the accounts you connected, to show which account is connected, and to keep your X balance correct. See “Posting to your social accounts” below |
| Content you send to our AI features: the chat message or text being judged, and the question or criteria you wrote for it | To answer the AI step in your flow |
| Website measurement: page views and page addresses, clicks, scrolling, page content, session recordings, demo selections, guide search terms and a yes/no “was this guide helpful?” answer — and only if you accept measurement | To understand which pages and guides are useful. See “Cookies and measurement” below |
| Dashboard measurement: generic page names for Google Analytics; actual page addresses, page content, clicks, scrolling and session recordings for Microsoft Clarity — and only if you accept measurement | To understand which parts of the dashboard are used. See “Cookies and measurement” below |
| Activity days: your channel’s Twitch id, a date, and whether the channel went live or its dashboard was opened that day. It does not record who was signed in | To count how many channels are active each week |
| The dashboard pages you open and when you sign in and out: for each channel, when someone signed in to or out of its dashboard and how (Twitch or email; a new channel, its owner coming back, or a helper), the Twitch login of whoever was signed in, the first time in each sign-in that each dashboard page was opened, and a scrambled reference that groups one sign-in’s rows (never the session itself). It is recorded on our server whether or not you accept measurement, and holds no page content, clicks or anything you type | To see where Bloopbot is confusing and fix it |
| Where you came from when you first signed up: the campaign or referral code in the link you followed, and the site that sent you, if any. It is read from that one visit and not stored in your browser | To understand which links and communities bring new streamers |
| Channel history: when the channel linked and unlinked, the plans it held and for how long, and its payment records (plan, amounts and invoices) | To run and account for the service, and to understand how long channels stay |
| An email address you type into Send this to my computer on a public page, only if you use it | To send you that one email with the page’s link. We do not store the address: it is used for the send, and a one-way keyed hash of it is kept for at most two hours so the same address gets no more than one email an hour |
| Backup sign-in email, only if you add one: the address, your Twitch user id, login and display name, when it was saved and when you confirmed it, and a one-way hash of each confirmation or sign-in link with the address it was sent to | To let you sign in to your dashboard by email when Twitch sign-in is not working, and to tell you when the address changes or is removed |
| The email address Twitch has for your account, each time you sign in with Twitch to manage your own channel (not when you sign in to help run someone else’s) | To contact you about your account, including asking once, after your channel leaves Bloopbot, why it left; also to match a signup to Reddit using a normalized SHA-256 hash: for a signup from a Reddit ad, with its setup steps, first checkout, first live flow and first payment, whatever your cookie choice; for any other signup, its setup completion only after separate advertising consent |
| Exit survey answers, only if your channel left and you answer the survey: the reasons you ticked, the note you wrote, whether you said it’s OK to reply, and when the survey was sent, opened and answered | To understand why channels leave and improve Bloopbot |
| Your product news choice: whether you asked for product news, when you agreed, the exact words you agreed to and where you agreed (the bar on your dashboard or Account), and when you stopped. It holds no email address of its own. Also when you last chose Not now on the bar that asks for an address | To send product news and launch updates only to people who asked for them, to prove that they asked, and to stop asking someone who said Not now |
| Support messages, privacy requests and attachments you send us, including your contact details | To answer your enquiry, verify a request where needed and keep a record of its outcome |
| Operational logs: application logs that include your Twitch login when your dashboard performs an audited action, a channel id in maintenance messages, and received chat messages with channel and viewer identities, message text and reply links | To diagnose faults and to keep an audit trail of changes |
Emails to [email protected] and [email protected] are held in our private shared inbox, including message headers, text, attachments and reply drafts. We may use TypeSafe’s Jev, directly or through OpenRouter, to classify the subject and message text and suggest the next action. Authorised AI assistants may read correspondence and prepare reply drafts. An operator reviews and sends replies; AI does not send them automatically. Attachments are not sent to Jev for classification. Contact us if you want a person to handle your enquiry without AI assistance.
We do not need your real name or postal address to link Twitch. A physical-prize claim asks the winner for a name and shipping address; Stripe checkout may ask for billing details and sends them directly to Stripe. If you choose to add a backup sign-in email, we store that address from the moment you save it, and use it for confirmation and sign-in links, account-security notices and the connection-failure notices described below. Only a confirmed address can sign you in. It is deleted when you remove it under Account, or when you unlink your channel’s Twitch account, together with the records of the links sent to it. We also keep the email address Twitch gives us when you sign in to manage your own channel. It is deleted 24 months after your channel leaves (or, if you never linked a channel, 24 months after you last signed in), or straight away if, once your channel has left, you ask us to forget it.
Why we use it, and the lawful basis
| Purpose | Lawful basis |
|---|---|
| Creating and running your account, linking your Twitch or Kick channel, and providing the features you switch on | Performance of a contract with you |
| Keeping your channel and your viewers safe: moderation filters, screening, anti-spam, cooldowns and rate limits | Legitimate interests — protecting your channel and our service from abuse, and keeping chat usable |
| Sending your channel’s chat content to an AI feature you enabled, under the settings you chose | Performance of a contract for the streamer’s account; for viewer content we follow the streamer’s instructions and they must establish a lawful basis |
| Sending sign-in and confirmation links to your backup sign-in email, and notices about changes to it | Performance of a contract for sign-in; legitimate interests for account-security notices |
| Sending product news and launch updates to your confirmed backup sign-in email | Consent — only if you ticked the product news box or chose Yes please, and only once the address is confirmed. Withdraw it any time with Turn off under Account or the unsubscribe link in every product news email |
| Sending the one Send this to my computer email you asked for | Legitimate interests: sending the link you asked for. It is one email, and nothing about it is kept |
| Asking a channel that left why it left, once, by email | Legitimate interests: improving Bloopbot. You can ignore it; we send it once |
| Recording audited changes to channel settings, so owners and editors can see who changed what | Legitimate interests — accountability for changes to a channel, and our own security |
| Measuring visits to the public website and the guides, and which dashboard pages are opened | Consent — the measurement tag is not loaded at all until a visitor accepts it |
| Counting the days each channel went live or used its dashboard, and noting where a new channel signed up from, to understand how many channels are active and which links bring new streamers | Legitimate interests — running and improving the service; the data is a channel’s Twitch or Kick id, a date and a source, sets no cookie and is never used to profile a person |
| Keeping the dashboard pages you open and when you sign in and out for 90 days, to see where Bloopbot is confusing and fix it | Legitimate interests — improving the dashboard. It is recorded on our server from the sign-in you already use, sets no cookie of its own and is never used for advertising |
| Keeping a short history of each channel after it unlinks: its link dates, plans, active days, sign-up source and AI usage | Legitimate interests — understanding why channels leave and what the service costs to run |
| Fault diagnosis, security and capacity: operational logs, error reports and metrics | Legitimate interests — keeping the service working, secure and free of abuse |
| Answering your support and data-protection requests | Legal obligation or legitimate interests, depending on the request |
| Complying with tax, accounting and lawful-request obligations, including keeping payment records | Legal obligation |
Our legitimate interests are running a secure and useful service. We must balance those interests against your rights and expectations: the data involved is what Bloopbot needs to run one Twitch or Kick channel, it is not used to profile you, and it is never sold or rented.
AI steps can classify a chat message and trigger a timeout, deletion or other action you configure. They can make mistakes. Streamers must review their rules and provide a way for viewers to challenge moderation. We do not use these steps to decide access to employment, credit, healthcare or other matters with legal or similarly significant effects. Do not configure a flow for such decisions; see “AI features” in our Terms.
Managing paid subscriptions and X top-ups relies on performance of a contract; retaining the financial records needed for tax and accounting relies on legal obligation. We send product news to your backup sign-in email only if you asked for it, and you can stop it at any time; we never use it for any other marketing, and we do not send the raw email to advertisers. A normalized SHA-256 hash of the Twitch sign-in email is shared with Reddit to match a signup from a Reddit ad, with its setup steps, first checkout, first live flow and first payment, whatever your cookie choice, and to match setup completion when you granted separate advertising measurement consent.
Viewers, streamers and who is responsible
Bloopbot is used by a streamer, but it also processes data about that streamer’s viewers: chat messages, loyalty points, watch time, giveaway entries, quotes, song requests and moderation history.
The streamer decides how their channel is configured — which features are on, which filters run, what the loyalty and giveaway rules are, and what the AI is asked to judge. For that viewer data Bloopbot processes information on the streamer’s behalf: the streamer is the controller and Bloopbot is their processor. We act as an independent controller for our own account administration, billing, security and service-operation purposes. The “Processing your viewers’ data” section of our Terms sets out our obligations as a processor.
Information you or the streamer choose to publish — including chat, quotes, public channel pages, marketplace listings and social posts — can be read and copied by other people. A streamer receives the shipping address you give for a physical prize. Flows can also send data to a Discord server, webhook or other external service chosen by the streamer; the streamer is responsible for that destination and for telling viewers about it.
If you connect an AI assistant to Bloopbot, the permissions you approve determine which channel information it can read and change. Tool results are sent to that assistant’s service; its provider’s privacy terms apply to its copy. Only grant access you intend to share, and revoke the connection when it is no longer needed.
If you are a viewer and you want to know why a message was moderated, what points you have, or to have your viewer data removed, the streamer of that channel is the fastest route — they can see and change their channel’s data. You can also contact us, and we will pass the request on and help the streamer answer it.
If you are a streamer, you are responsible for the notices you give your own viewers about your channel, and for making sure you have a lawful reason to run the features you switch on.
YouTube
Bloopbot uses YouTube API Services. By connecting YouTube you agree to the YouTube Terms of Service (https://www.youtube.com/t/terms). Google’s handling of your data is described in the Google Privacy Policy (https://policies.google.com/privacy).
For Cloud Stream and broadcast controls we store your YouTube channel id and name, granted permissions, encrypted access and refresh tokens, your selected broadcast, a private creation record for up to 24 hours, and the YouTube destination of each Cloud Stream session. We use these only to carry out your chosen broadcast and streaming operations. While a chat widget or Bloopstream is listening, this connection also reads live chat from your active YouTube broadcasts. We receive message text, public channel ids and names, membership and moderator display flags, and deletion or ban notices, to display and remove comments in your merged chat, widgets and apps. Bloopbot does not send YouTube chat, run flows from it or use it for AI or loyalty. Recent comments use capped shared display buffers: widget history expires after 10 minutes without new chat, and app replay after one hour without new frames. Removal notices prune widget history and mark app comments removed; disconnecting clears the YouTube display source. Viewer ids in app frames and deduplication records are scoped one-way hashes; deduplication records expire after 10 minutes without new comments. Display names and text remain personal data and can be seen or copied wherever you show chat. Separate operational quota records hold one-way hashes of channel and sender ids and request counts. These hashes are pseudonymous personal data, not anonymous data. An hourly job removes closed-day subject hashes after the Pacific day ends and request-window hashes after their windows expire, which is at most 24 hours after a request. Aggregate request and quota counts are retained for up to 31 days; disconnecting does not restore spent quota.
To recover chat safely after an interrupted connection, we also keep encrypted private observations and a continuation record. Observations can include message text and public author details, paid-message amounts and currencies, memberships, gifts, polls and moderation notices. Observation content expires after 24 hours; compact pseudonymous identity and revision records expire after seven days. An hourly cleanup removes expired records. Private chat targets and continuation records are deleted within 30 days without renewed use. A continuation older than seven days is not treated as a valid resume: the display reader can explicitly start again as history, without running commands or awarding points. These recovery records are not analytics or a permanent viewer profile. Disconnecting or replacing the owner connection deletes them immediately.
To remove access, end any cloud stream sending to YouTube and press Disconnect YouTube in Settings → Connections. Bloopbot deletes the owner grant, selected broadcast, creation records and private targets on ended Cloud Stream sessions locally, asks Google once to revoke access, and reports Google’s answer separately. You can also remove access at https://myaccount.google.com/permissions. An hourly job probes idle grants; when Google confirms revocation it deletes the grant and its data. A connection that cannot be refreshed is removed after 30 days. Deletion waits while its cloud stream is active: end that stream to complete removal. Your streaming settings, flows and overlays are kept.
Bloopbot’s dedicated YouTube sender account is authorized separately from streamer and personal accounts. We store its YouTube channel id and name, Google account identifier, granted permissions and encrypted access and refresh tokens. The Bloopbot team can check, reconnect or disconnect that authorization. It does not create a Bloopbot login or by itself enable chat posting or moderation. The same idle-grant checks, confirmed-revocation cleanup and 30-day unusable-grant deletion apply. Removing Google permission can also invalidate other Google grants for the same Google account and app; reconnect those through their original connection.
Expired creation records are deleted, and private YouTube targets on ended cloud streams are deleted after 30 days. Stored grants must be successfully refreshed within 30 days or are deleted. YouTube broadcasts are created or changed only after your explicit choice; ending Cloud Stream stops media delivery and leaves broadcast completion to your explicit broadcast control.
Who else processes it
We do not sell personal data or build advertising profiles. With separate advertising measurement consent on public pages, Google Ads measures those visits and successful setup completion using advertising cookies, with personalisation disabled. With the same choice, Reddit measures successful setup completion using your IP address, browser details and, where available, a SHA-256 hash of the email Twitch shared when you signed in. Whatever cookie choice you make, including none, Reject all, Global Privacy Control or Do Not Track, our servers tell Reddit which public pages you visit here (the page address without its query, and whether it is pricing, a feature, a comparison, a guide or a marketplace listing), that you searched the guides (not the words) and that you pressed a sign-in button, with your IP address, browser details and, if a Reddit ad brought you in the last 28 days, its click ID. If you arrived from a Reddit ad, Reddit also receives, from our servers and whatever your cookie choice, your signup, your setup steps (setup completed, the bot made a moderator, the first test alert, the first flow switched on, Kick connected, commands imported), your first checkout, your channel’s first flow that runs while you are live, and your first payment (its amount and currency), each with the ad’s click ID, the IP address and browser details of the signup, the email hash and a hash of your channel ID; this only happens within 28 days of the ad click. The email is lowercased, and dots and any +tag are removed from the part before the @, before hashing; the hash remains personal data used for matching. We use the following services, each under its own terms, and each only for the purpose listed:
| Service | What it does | When it is used |
|---|---|---|
| Twitch | Sign-in, channel linking, chat, events, moderation and channel actions. Twitch is the source of most of the personal data in the product | Whenever a channel is linked |
| Kick | Sign-in with Kick, linking a Kick account, chat, events, moderation, channel rewards, stream info, ads, the KICKs leaderboard and profile pictures. Kick is the source of the Kick data in the product | Only for Kick channels and channels that connect Kick |
| Discord | Receiving messages a flow sends to the streamer’s connected server and returning server/channel metadata | Only when a channel connects a server or enables Discord actions |
| Spotify | Searching for and playing requested songs through the streamer’s own Spotify developer app | Only for channels that link Spotify |
| Google Analytics | Counting public page visits, guide feedback and generic dashboard page names | Only after a visitor accepts measurement; never on these legal pages or overlays |
| Reddit Ads | Measuring public page visits, guide searches and sign-in clicks, and matching a successful setup completion, and for visitors who arrived from a Reddit ad their signup, setup steps, first checkout, first live flow and first payment, to Reddit accounts using the ad click ID, the visitor IP address, browser details, a hashed channel ID and normalized SHA-256 Twitch email hash. No raw email address is sent and no Reddit script runs on our pages | Public page visits, guide searches, sign-in clicks and the events of a signup from a Reddit ad: always, from our servers, whatever the cookie choice. Setup completion for any other signup: only after a current Accept all choice on a public production page |
| Google Ads | Public page visits and successful setup completion using advertising cookies and permitted advertising user data; personalisation stays disabled | Only after Accept all on a public production page that uses Google Analytics; dashboard page views, widgets and overlays are excluded |
| Microsoft Clarity | Website and dashboard heatmaps and session recordings, including page addresses, page content, clicks and scrolling | Only after a visitor accepts measurement on website and dashboard pages at bloopbot.com; never in OBS browser sources, widgets or embedded overlays |
| TypeSafe | The AI judge that answers AI steps in a flow and classifies shared-inbox email: the text being judged and the question are sent as the state of the request | For channels with an AI feature switched on, and for shared-inbox email classification when enabled |
| OpenRouter | An alternative transport for the same AI judge, including shared-inbox classification, used when it is configured instead of TypeSafe; and the route to the AI model that suggests Highlights clip titles from a moment’s words and chat text (no usernames) and the channel’s recent public clip titles. Bloopbot asks OpenRouter to use only providers that do not retain or train on prompts | For enabled channel AI features, shared-inbox classification and, for channels with the Highlights add-on, a clip title suggestion when you ask for one, and only if configured |
| Bluesky, Mastodon, X, Threads, Instagram and Facebook | Receiving the posts your flows publish to the accounts you connect (Meta operates Threads, Instagram and Facebook). Each receives the text and any image of the post, and identifies your account by the connection you made. Mastodon posts go to the server you chose | Only for channels that connect that account |
| Apple Push Notification service and Firebase Cloud Messaging (Google) | Delivering Bloopstream’s notifications to your phone or watch. Each receives the device’s push token and the notification: an alert’s text (such as a viewer’s display name and the amount) or the stream’s live time, viewers and signal | Only for devices where you turn on notifications in the Bloopstream app |
| Stripe | Processing subscriptions and X balance top-ups, invoices, tax calculations and refunds. Stripe collects payment and billing details in checkout; Bloopbot holds customer and payment references, plan, currency, amounts and subscription status, not full card details | Only when you use paid features or manage billing |
| Cloudflare R2 | Storing uploaded widget media when object storage is enabled instead of local disk | Only when that storage is enabled and a channel uploads media |
| Cloudflare Email Service | Delivers our emails: sign-in and security emails to the backup sign-in email address, the one exit survey email to the email address Twitch has for your account, and the one Send this to my computer email to the address you typed. Cloudflare Email Routing receives shared-inbox correspondence, and Email Service delivers our replies. Cloudflare receives the addresses and messages. | For accounts that add a backup sign-in email, once for a channel that leaves, once when you use Send this to my computer, and when you email our shared inbox |
OVHcloud provides the servers on which we run the application and its database, cache and message broker. Cloudflare provides network delivery and protection, object storage (Cloudflare R2) for media and backups, and email delivery. These infrastructure services may handle network information such as your IP address, request time and browser details to deliver and protect the service.
For a cloud stream, your camera’s video goes first to the OVHcloud data centre nearest you that is running: in France, or, while you need it, in Canada (Beauharnois, near Montreal) or Singapore. It then travels to France, where Bloopbot adds your overlays and sends it to Twitch or Kick. Nothing is recorded on the way. To pick that data centre when you go live from Bloopbot, or when you open the Cloud stream page or the program preview, we use the approximate location Cloudflare derives from your IP address. We keep only the name of the region it picked, never the location.
We also disclose personal data where the law requires it, or where we must protect the rights, safety or security of a person or of the service.
Infrastructure and service providers handling data on our instructions act as processors, or as sub-processors for viewer data. Platforms you connect also process account information under their own policies, and payment providers may have their own legal obligations. The processing terms in our Terms require appropriate protections for sub-processors. Contact us for details about a provider or its role.
Where your data goes
The providers listed above operate internationally. Depending on the service you enable, personal data may be processed outside the UK or the European Economic Area, including in the United States. A Mastodon connection sends posts to the server you choose; its location and rules depend on that server.
A cloud stream’s camera may also pass through an OVHcloud data centre in Canada or Singapore when you stream near one.
For transfers we make as a controller or processor, we must use a lawful safeguard: an applicable UK/EU adequacy decision, or appropriate contractual safeguards such as the EU standard contractual clauses together with the UK International Data Transfer Agreement or UK Addendum where required. We must assess the protection for the transfer and apply additional measures where necessary. Connecting a platform does not remove those obligations.
You can ask for more detail about the safeguard used for a particular service by contacting us.
How long we keep it
The service automatically expires or removes the short-lived records below. Financial records and provider-held information follow the separate policies shown; their retention is not an automatic channel-deletion rule.
| What it is | How long it is kept |
|---|---|
| Sign-in and account-linking handshake state | Ten minutes; it lives in memory and is never written to the database |
| Editor invites | Seven days, single use, and revocable at any time |
| Physical-prize shipping addresses | Deleted automatically thirty days after the streamer marks the prize shipped. Before shipment, kept for fulfilment until the prize or channel is deleted; contact the streamer or us to request earlier removal |
| Viewer sign-in sessions | Thirty days of inactivity by default; they belong to the viewer account, so unlinking one streamer’s channel does not delete them |
| Dashboard sessions | Thirty days of inactivity by default, and expired sessions are removed |
| Your product news choice | Kept while your channel is linked, including after you stop product news or remove the address, as the record of what you agreed to and when. Deleted when you unlink your channel’s Twitch account |
| Send this to my computer | The address is not stored. Its keyed hash expires after two hours |
| Backup sign-in email links | Each works once; a sign-in link expires after 15 minutes and a confirmation link after 24 hours. Only a one-way hash is stored, and the record is deleted seven days after the link expires or is used |
| Audit log entries | The 200 most recent entries for a channel; older entries are deleted as new ones are written |
| Flow run history | The 50 most recent runs for each flow, and never longer than seven days |
| Flow versions | The 50 most recent versions of each flow |
| A connected social account’s id, handle and tokens | Until you disconnect the account on Connections, or, for a Facebook, Instagram or Threads account, send Meta a data deletion request for Bloopbot in your Meta settings, when they are deleted straight away. Only removing Bloopbot in a platform’s settings does not delete them: Bloopbot marks the account as needing reconnection, and its details are deleted when you disconnect it. If a token can no longer be refreshed, the account is marked the same way |
| A Kick account’s link and tokens | Until you disconnect Kick on Connections or unlink the channel, when they are deleted, Bloopbot removes its Kick event subscriptions and asks Kick to revoke the tokens. Removing Bloopbot in your Kick settings stops it working; the stored link is deleted when you disconnect Kick or unlink |
| Your own chat permission for the Bloopstream app | Until you turn it off in Bloopstream, or the Bloopstream app is no longer connected to your account (you remove it from Connected apps, sign it out, or its sign-in runs out), or you have not chatted with it for 90 days. Turning it off or removing the app deletes it straight away, the other two within an hour, and each time Bloopbot asks Twitch or Kick to revoke it. If Twitch or Kick stops accepting it, it is marked as needing your permission again until you allow it again, and is otherwise deleted the same way. One the app did not finish setting up within five minutes is revoked and deleted |
| Bloopstream notification registrations | Until you turn notifications off for that device in Bloopstream, or the sign-in it belongs to ends (you remove it from Connected apps, sign it out, or its sign-in runs out; a watch’s sign-in also ends with the phone sign-in it came from), when it is deleted; and straight away when Apple or Google says its push token no longer works |
| The cloud stream region nearest your device | Six hours, as a region name (Europe, US East, US West or Asia), never your location. The region for scheduled streams, and the region your last cloud stream used, are kept with your cloud stream settings until you change them or unlink the channel |
| Kick profile picture addresses | Cached for up to an hour, and a Kick account that could not be found for five minutes |
| The ids and addresses of posts Bloopbot published | With the run history of the flow that posted them, so no longer than that history |
| Per-viewer flow variables | Ninety days after the last time the viewer’s value changed |
| Flow webhook credentials | Until the flow is moved to the Trash; deleting the flow stops its trigger URL working |
| Channel history after unlinking: link and unlink dates with the channel’s Twitch or Kick id, login and display name at the time, plans held, streaming and dashboard days, sign-up source and AI usage | 24 months after the channel unlinks, then it is deleted. You can ask for it to be deleted sooner (see “Your rights”) |
| Exit survey answers | With the channel history: deleted 24 months after the channel unlinks, or straight away if you ask us to forget the channel once it has left |
| The dashboard pages you open and when you sign in and out | 90 days, then deleted automatically, including after the channel unlinks; or straight away if you ask us to forget the channel once it has left |
| Highlights training labels: numbers about each moment and your Good clip? answer | 2 years after the moment was found, then deleted automatically; deleted with the channel when it unlinks |
| The email address Twitch gives us when you sign in to manage your own channel | Kept after your channel unlinks, then deleted 24 months after it leaves (or, if you never linked a channel, 24 months after you last signed in), or straight away if you ask us to forget the channel once it has left |
| Payment records: plan, amounts and invoices | Our accounting retention policy is six years from the end of the financial year the record relates to, or longer where law, an unresolved payment dispute or a legal claim requires it. These records are reviewed separately from channel deletion |
| Reddit signup matching | The email hash is generated for each conversion and is not stored separately by Bloopbot. For a signup from a Reddit ad, the ad click ID is kept with where the signup came from, and the IP address and browser details of the signup for 35 days. A public page event waits on our server, with your IP address and browser details, only until it is sent to Reddit, and at most seven days. Reddit processes received events under its own privacy and advertiser terms; contact us for the current retention details |
| Public-site and dashboard measurement | Held by Google. Standard GA4 event and user data retention settings are two or fourteen months; aggregate reports can last longer, and returning visits may renew identifiers. Ask us for the current property setting. This is separate from the browser-cookie lifetime below |
| Microsoft Clarity website and dashboard measurement | Held by Microsoft. Recording playback is retained for 30 days; heatmap and click data, and labelled or favourited sessions, for nine months |
Everything else in the table under “The personal data we collect” is kept while the channel is linked, because that is the data the features read and edit. Unlinking a channel deletes its settings, flows, loyalty, viewer data and everything else the features use. It keeps a short history instead: when the channel linked and unlinked, which plan it was on, which days it streamed or used the dashboard, where it signed up from, how much AI it used, the dashboard sign-ins and pages of its last 90 days, which are kept only for those 90 days, and, if you answered it, the exit survey, keyed by the channel’s Twitch or Kick id, with its login and display name on the link and unlink records. We delete the rest of that history 24 months after the unlink. Unlinking deletes a channel only when that leaves it with no streaming account: Unlink Kick deletes a Kick channel, and a Twitch channel with Kick connected must disconnect Kick before Twitch can be unlinked. Unlinking also removes the channel’s custom domain. If the channel listed anything in the marketplace, those listings are taken down, but streamers who already installed them keep their copies, still credited to the creator name you chose. If you want the history deleted sooner, email [email protected] with the Twitch or Kick login of the channel and we will delete it and replace that creator name with “Former creator”. Payment records are kept separately, for the period in the table. The following records have different lifecycles:
- Loyalty balances and watch time, giveaway history, quotes and the song queue are kept while the channel is linked, unless you delete them through the feature or ask us to erase them. Unlinking deletes them.
- AI usage records: the service keeps, per day, the number of requests, the input and output tokens and the cost. While the channel is linked they are kept; after it unlinks they follow the 24-month channel history above.
- Revoked overlay and widget tokens and old editor-invite rows can remain until the channel is unlinked, even though revocation or expiry stops them working.
- The X balance and posting ledger are kept while the channel is linked. Disconnecting X keeps them, but unlinking the Twitch channel deletes them. Stripe’s payment records follow its financial and legal retention rules; the accounting policy above applies to the financial records we retain separately. Ask about unused credit before unlinking.
- Data-deletion receipts remain available as evidence that a Meta request was completed; there is currently no automatic expiry. A receipt holds only its code, source, date and a one-way hash of the account id. Ask us to remove it if you no longer need that evidence.
- Support and privacy-request correspondence is kept while the enquiry is open. At closure we review what needs to remain for follow-up, evidence of how a rights request was handled, or an unresolved complaint or legal claim; we remove material no longer needed. Ask us about the records of your own request.
- Operational logs, including chat history available only to service operators for fault diagnosis and support, are kept for up to 30 days, with older logs removed sooner if the storage limit is reached. Production database backups contain copies of stored data and are kept for 14 days. Deleted data may remain in those restricted recovery copies until they expire. If we restore a backup, we must reapply deletion requests before returning the affected data to ordinary use.
Your rights
If you are in the UK or the EEA you have the right to:
- Access the personal data we hold about you, and get a copy of it.
- Rectify data that is wrong or incomplete.
- Erase your data (the “right to be forgotten”).
- Restrict how we use it while a concern is looked into.
- Port data you gave us to another provider, in a machine-readable form.
- Object to processing based on our legitimate interests, and to any direct marketing.
- Withdraw consent at any time where we relied on consent — accepting or rejecting measurement is the everyday example, and withdrawing it never affects the rest of your account.
To exercise any of these rights, email [email protected] with enough detail for us to find your data (your Twitch or Kick login, and the channel if you are asking about a channel you do not own). If you are a viewer, we may need to involve the streamer of that channel, because the data sits inside their channel.
We normally answer within one month. Where the law allows an extension for a complex request or multiple requests, we tell you within that month why up to two further months are needed. We will not treat you differently for exercising your rights.
We may ask for proportionate evidence that the request concerns your account or data, and only use it to verify the request. Rights can have legal exceptions: for example, financial records may need to be retained, or erasure may affect another person’s rights. If we cannot fulfil a request, we explain why and how to complain. We normally charge nothing; any lawful fee or refusal for a manifestly unfounded or excessive request will be explained.
Deleting your data from Meta accounts
This section is our data deletion instructions for Facebook, Instagram and Threads, the accounts Meta operates. To delete the data Bloopbot holds about a connected account, use either route:
- From Bloopbot. Open Connections in the Bloopbot dashboard and disconnect the Threads, Instagram or Facebook account. Its stored id, handle and tokens are deleted straight away.
- From Meta. In the app settings of your Facebook, Instagram or Threads account, choose “Remove and delete” for Bloopbot, or send a data deletion request for it. Meta then tells us to delete what we hold for that account, and we delete it without you needing to do anything else. Bloopbot gives Meta a confirmation code and a page at
/data-deletion/followed by that code, where you can see that the request is complete. Removing Bloopbot without asking for its data to be deleted only ends its access: Bloopbot finds out the next time it tries to post, and keeps the stored details until you disconnect the account on Connections or send the deletion request.
If you cannot reach either, email [email protected] with your Twitch login and the account you want removed, and we will delete it and reply once it is done. Posts Bloopbot already published to your account are not deleted by any of these routes; delete them on Facebook, Instagram or Threads.
The same disconnect route deletes the data held for a Bluesky, Mastodon or X account. The rest of your rights are in “Your rights”.
Complaints
If you are unhappy with how we have handled your data, please contact us first so we can put it right.
You also have the right to complain to the Information Commissioner’s Office (ICO), the UK regulator for data protection, at ico.org.uk or on 0303 123 1113. If you live in the EEA you can complain to your own national regulator instead.
Children
Bloopbot is for people aged 13 or over. We do not knowingly collect data from anyone under 13, and we will delete any account we find that belongs to a child below that age.
Linking a channel needs a Twitch or Kick account. Twitch applies its own minimum age, which is 13, and Kick applies its own. Because viewer data belongs to a streamer’s channel, a streamer must not knowingly use Bloopbot on a channel whose viewers include children below 13.
If you believe an account or stored viewer record relates to a child under 13, contact us with enough detail to locate it. We will investigate and remove data we should not hold, and involve the channel owner where needed. Do not upload sensitive information about children to flows or AI features.
Security
Tokens, Spotify client secrets and integration credentials are encrypted in the application before they are stored, and the keys that decrypt them are held in the service’s configuration rather than in the database.
The audit log deliberately never records tokens, secrets, overlay token values, CSRF tokens or session identifiers. Tokens can be revoked by unlinking an account, rotating a widget or overlay token, or moving a flow to the Trash, and revoked overlay tokens stop working.
No service can promise perfect security. If we ever become aware of a breach that puts your rights at risk, we will tell the ICO and the people affected without undue delay, as the law requires. If you think you have found a security problem, email [email protected].
We do not sell your data
We never sell, rent or trade personal data, build advertising profiles or sell data to data brokers. Google Ads measures public page visits and successful setup completion only after explicit advertising measurement consent, using advertising cookies and permitted advertising user data, with personalisation disabled. Whatever the cookie choice, Reddit receives the visitor IP address and browser details, the public pages visited here, guide searches and sign-in clicks, and for a visitor who arrived from a Reddit ad, the ad click ID and a normalized SHA-256 hash of the Twitch sign-in email with their signup, setup steps, first checkout, first live flow and first payment. With the current advertising choice, Reddit also receives that hash to match setup completion. No raw email is sent, and the hash is removed from Google forwarding.
Paid plans and X top-ups are funded by your payments through Stripe, rather than by selling personal data. Billing does not enable advertising or change your analytics choice.
Changes to this policy
This policy takes effect on 30 October 2026. When we change it, we update that date and list what changed. If a change is material — for example a new category of data or a new service that processes your data — we will tell you in the dashboard before it takes effect.
- 30 October 2026: documented encrypted short-lived YouTube chat recovery observations, compact identity records and continuation storage, their expiry and owner-disconnect deletion. Recovery remains receive-only and does not run commands or award points.
- 29 October 2026: documented Bloopbot’s separate dedicated YouTube sender authorization and its encrypted grants, revocation checks and deletion lifetimes. Authorizing it does not enable chat posting or moderation.
- 29 October 2026: connected YouTube live chat now appears in merged chat, widgets and Bloopstream, with public author information, source-scoped removals and capped short-lived display buffers. It is receive-only and does not trigger flows, AI or loyalty.
- 29 October 2026: added the owner YouTube connection for Cloud Stream and broadcast controls, its encrypted grants, separate local-deletion and Google-revocation outcomes, and its data-retention lifetimes.
- 23 October 2026: when you ask for AI clip titles in Highlights, the titles of up to 10 of your channel’s public clips from the last 60 days are also sent through OpenRouter, as examples of your channel’s style, and the AI suggests three titles to pick from. The clip titles are read from Twitch for that request only and are not kept.
- 23 October 2026: Highlights no longer writes a clip title for the best moments on its own. A moment’s words and chat text (no usernames) are sent through OpenRouter for a title only when you press Suggest a title with AI in the clip dialog, and the title goes into the dialog without being kept.
- 19 October 2026: a cloud stream can now take your camera in an OVHcloud data centre in Canada or Singapore when you stream near one, then carries it to France. When you go live from Bloopbot, or open the Cloud stream page or the program preview, we use the approximate location Cloudflare derives from your IP address to pick the nearest, and keep only the region’s name: for six hours, and as the region of your last cloud stream.
- 18 October 2026: if you turn on location sharing in the Bloopstream app while you stream, your phone sends us its position, speed and heading, and we use them only during that live session. The exact position is held in short-lived memory for as long as it is needed to delay it and is deleted when the session ends; it is never written to our database, backups or logs. Your overlays and flows see only a position delayed by the time you choose and rounded to about 100 metres, with the nearest city or neighbourhood name worked out on our own servers rather than by a location service. Those delayed values, and the phone’s battery, signal and similar status, are kept in your channel data while you stream and cleared when the session ends. Privacy zones you set stay on your phone.
- 16 October 2026: on a phone, public pages offer Send this to my computer. Your phone’s share menu or Copy link sends nothing to us. If you choose the email option, we send one email with the page’s link to the address you type, through Cloudflare Email Service, and we do not keep the address; a one-way keyed hash of it is kept for at most two hours to limit repeats.
- 14 October 2026: if you turn on notifications in the Bloopstream app on a phone or watch (Apple Watch or Wear OS), we keep that device’s push token with the Bloopstream sign-in that registered it and delete it with that sign-in, and Apple Push Notification service or Firebase Cloud Messaging delivers the alerts and watch-face updates, receiving the token and the notification.
- 14 October 2026: Reddit ad measurement no longer waits for your cookie choice. Whatever you choose in the cookie bar, including Reject all, Global Privacy Control or Do Not Track, our servers tell Reddit about your public page visits, guide searches and sign-in clicks, and, if a Reddit ad brought you, your signup, setup steps, first checkout, first live flow and first payment, with the ad’s click ID, your IP address, browser details and the email hash. Your browser keeps a Reddit ad’s click ID for 28 days whatever you choose. The cookie choice still controls cookies, Google Analytics, Microsoft Clarity, Google Ads and the Reddit setup match for signups that did not come from a Reddit ad.
- 14 October 2026: your own chat permission for the Bloopstream app is now also deleted, and revoked at Twitch or Kick, when the app is no longer connected to your account (removed from Connected apps, signed out, or its sign-in ran out) and after 90 days without chatting with it.
- 14 October 2026: if you allow the Bloopstream app to chat as you, we keep your own Twitch or Kick chat permission (your account id, login and its encrypted tokens), so the messages you type there post under your name instead of the bot’s. Turning it off in Bloopstream deletes it and revokes it at Twitch or Kick.
- 14 October 2026: Find, the dashboard search, now records the words typed into it, how many results they found and which result was picked (a page, a place in a page, an action or a guide; for your own flows, overlays and other items, only the kind of item, never which one), anonymously like the flow editor’s node search, with no account, channel or address attached, and keeps them for 90 days to improve search.
- 13 October 2026: with a fresh advertising choice, Reddit also learns which public pages you visit here, that you searched the guides and that you pressed sign-in, sent from our servers with your IP address, browser details and any Reddit ad click ID (kept in your browser for 28 days); and for a signup from a Reddit ad, its setup steps (setup completed, bot made a moderator, first test alert, first flow on, Kick connected, commands imported) and first checkout.
- 13 October 2026: if you arrive from a Reddit ad and grant the advertising choice before signing up, our servers now tell Reddit about your signup, your channel’s first flow that runs while you are live and your first payment (amount and currency), within 28 days of the ad click, with the ad’s click ID, the signup’s IP address and browser details (kept 35 days), a hashed channel ID and the normalized email hash, which now also drops dots and +tags. This needs a fresh advertising choice.
- 13 October 2026: setup completion is now counted once per channel when you complete the Set up your bot tutorial, which new channels start with, instead of when you first publish your overlay (channels linked before it arrived still count it at that publish), and the first Test on stream is counted in either tutorial. Both are still counted under generic dashboard addresses without channel or overlay identifiers.
- 12 October 2026: Bloopbot now works with Kick. If you sign in with Kick or connect Kick to a channel, we keep your Kick account, its encrypted tokens, your Kick viewers and the events Kick sends, as we do for Twitch, and Kick joins the services that process data, only for channels that use it. Unlinking deletes a channel only when that leaves it with no streaming account.
- 11 October 2026: for channels with the Highlights add-on, a short excerpt of the words and chat of the best moments is now also sent through OpenRouter to an AI model, which suggests a clip title; chat is sent as message text only, without usernames, and OpenRouter is asked to use only providers that do not retain or train on prompts. A filter checks the title. The title is kept like the excerpt, for 90 days or until you dismiss the moment, and you can change it before a clip is made.
- 11 October 2026: Highlights now keeps, for channels with the add-on, numbers about each moment it finds and what you did with it (clipped, dismissed, watched, and your Good clip? yes or no) for 2 years, to improve which moments it finds. These hold no transcript, chat or title.
- 9 October 2026: added Reddit signup measurement with visitor IP address, browser details and an optional normalized SHA-256 Twitch sign-in email hash, requiring a fresh advertising choice. Hashing remains personal data; the hash is excluded from Google forwarding.
- 7 October 2026: the flow editor now records the words typed into its node search, how many results they found and which node was picked, anonymously, with no account or channel attached, and keeps them for 90 days to improve search.
- 5 October 2026: described received chat messages and viewer identities in operational logs, their operator-only use for diagnosis and support, and the current retention of up to 30 days.
- 5 October 2026: setup completion is now counted once per channel when you first publish your overlay in the Your first overlay tutorial, which replaced the setup chat for new channels, instead of when the setup chat finished. It is still counted under a generic setup address without channel identifiers.
- 4 October 2026: the dashboard now counts, once per channel, the first Test on stream that plays on your overlay in the Your first overlay tutorial, under a generic dashboard address and without channel or overlay identifiers.
- 4 October 2026: the dashboard menu no longer has a Cookie settings item; the Cookie settings button is now in this policy, under Cookies and measurement.
- 2 October 2026: added the exit survey answers and how long they are kept; said that the link and unlink records keep the channel’s login and display name; said that Cloudflare Email Service also delivers the exit survey email; and said that the Twitch account email is kept only when you sign in to manage your own channel, and is forgotten on request once the channel has left.
- 2 October 2026: We now keep a 90-day record of when you sign in and out and which dashboard pages you open.
- 2 October 2026: said that we email your backup sign-in email once when your X balance runs low, and removed the saved payment method for automatic X top-ups, which no longer exist.
Older versions are available on request.
How to contact us
For anything in this policy — a question, a request or a complaint — contact:
Bloop Software LtdTrading as BloopbotCompany number 17476185, registered in England and WalesRegistered office: 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United KingdomEmail: [email protected]Product: https://bloopbot.comOur Terms & Conditions at https://bloopbot.com/terms explain the rules for using Bloopbot.
Posting to your social accounts
A streamer can connect a Bluesky, Mastodon, X, Threads, Instagram or Facebook Page account, and then have Bloopbot post to it on their behalf, for example when the stream goes live. Connecting is your choice, it is done from Connections in the dashboard, and Bloopbot asks each platform only for the permissions it needs to publish posts and to show which account is connected.
What Bloopbot posts. Only what your own flows send, and the test posts you send yourself from the dashboard. Bloopbot never writes a post of its own, and it does not read your timeline, your messages or your followers. A limit on how often a channel can post to one platform applies to every flow, to protect your account from a flow that loops.
If a post fails because an account is disconnected or its access has expired, and you added a backup sign-in email, we may email that address once, so you can reconnect it. Likewise, when a post takes your X balance below $1.00, we email that address once, until you add X balance again.
Disconnecting. Removing an account from Connections deletes its stored id, handle and tokens straight away, and Bloopbot can no longer post to it. You can also revoke Bloopbot’s access from the platform’s own settings; Bloopbot then finds out the next time it tries to post, and asks you to reconnect. Posts already published stay on the platform, because they belong to you and to the platform: delete them there if you want them gone. Your X ledger is a financial record, so disconnecting X does not erase it: see “How long we keep it”.