Privacy
What each bot in Tiny Telegram Tools stores, in plain terms.
Every bot only stores what it needs to do its one job — there's no third-party analytics SDK, no ad network, and data is never sold or shared with anyone outside running the bot itself. Where a bot doesn't need message content to work (for example GroupPulseBot's activity counts), it only stores counters, not text.
Every bot also records, per user id, a first-touch funnel of a few product events — start, action, pro prompt shown, invoice sent, paid — and the acquisition source encoded in the /start deep link you arrived from (for example, this site or a shared link). This is internal product-usage tracking, not third-party analytics: it's stored in the bot's own database, used only to see which steps people drop off at, and never leaves the bot.
Website measurement
This website records aggregate counts of successful page requests and clicks on supported Telegram links. Page records contain a published route, a coarse source and referrer category, and a browser or crawler family. Click records contain a published route, a bot name and an action type. These records do not contain IP addresses, raw user agents, full URLs, message text or Telegram account IDs. The website does not create analytics cookies or browser storage IDs. Counts describe requests and clicks; they do not identify people or prove that someone started or paid for a bot.
Quality assurance note: a small set of reserved test user and group ids is used internally to validate payments and stats before release; these are excluded from every bot's public statistics.
WhisperLockBot
- Message text you write is stored in a `whispers` row (sender id, sender name, target, body, reveal count) so it can be shown again when the recipient taps it.
- Your Telegram user id, username, and Pro status are stored in a `users` row.
- No message content is shown to anyone except the addressed recipient and you, the sender; other chat members only ever see the locked card.
NudgeRemindBot
- Each reminder is stored as a row with your user id, chat id, the reminder text (`body`), fire time, and repeat interval, so the 1-minute cron can find and deliver it.
- Your Telegram user id, username, timezone offset, and Pro status are stored in a `users` row.
- Reminder text is only ever sent back to the chat it was created in.
AnonInboxProBot
- Incoming anonymous messages are stored in a `messages` row (owner id, sender id, body) so you can read and reply to them.
- A `sessions` row tracks that you're mid-conversation; `link_opens` counts visits to your link; `blocks` stores who you've silently blocked.
- The sender's Telegram identity is never shown to the owner on the free tier; Pro adds limited hints, not the sender's full identity.
- A public-answer card you build from a message shows your answer, the question, and your link — never the original sender's identity.
SpyPartyProBot
- For each round the bot stores the group id, the host, the players who joined (Telegram id, display name, language), the role of each player, the votes and the result.
- The bot sends the secret place and the role in a private message. It posts no role in the group before the reveal.
SplitTabsBot
- Each group's ledger is stored per chat: a `groups` row (title, Pro flag, currency, language, last /nudge time, whether the tip was shown), `members` (handles seen in the chat), and an `expenses` row per entry (payer, amount, description).
- No banking or payment details are ever stored — /settle only calculates and displays a settlement plan; it doesn't record or move real money.
- Data is scoped to the group chat it was entered in; /clear wipes that group's ledger.
HabitStreakProBot
- Each habit is stored as a `habits` row under your user id; daily check-ins are stored in `checkins` (habit id, day) — just a date marker, no notes or content.
- Your check-in hour and timezone are stored in a `prefs` row; a background check runs every hour and prompts you once a day, at your chosen local hour.
- No habit data is shared to any group or other user — it's private to your account and visible in the Mini App board.
EventRSVPProBot
- Each group's events are stored per chat: `events` (title, time, creator, card message id) and `rsvps` (one row per user per event, so a repeat tap moves you between buckets instead of duplicating).
- Names shown on the event card come from your Telegram display name, capped at 30 names per bucket before it switches to a '+N more' count.
- Cancelling an event marks it cancelled rather than deleting history, so the group's event id numbering stays consistent.
AnonSayProBot
- Anonymous posts are stored in a `posts` row (chat, message id, sender id, body) — the sender's identity is kept internally so /reveal and /ban can work, but is never shown to other group members.
- A per-group `salt` is generated once and used to hash the sender id shown to admins via /reveal, so the hash isn't reversible without the bot's data.
- `bans` stores a silent per-group block list; `admin_cache` caches admin-status checks for 10 minutes to avoid hammering Telegram's API.
- A `sessions` row tracks which group you're mid-conversation with when posting via DM, so the bot knows where to relay your next message.
- Posts are purged automatically after 30 days.
PartyPackProBot
- The bot stores which prompts each chat/category has already shown (`seen`), the Spicy toggle per chat (`chats`), and recent members per chat (`members`) so "Next player" can pick someone.
- No prompt responses or personal answers are stored — only which prompt indexes have been shown, to avoid repeats.
- Spicy content is tasteful 18+ only — no explicit sexual content, no illegal acts — and is off by default even for Pro users.
GroupPulseProBot
- Only counters are stored: `counts` (per chat, user, day: text/media/other counts) and `hours` (per chat, day, hour) for the busiest-hour stat — never message text.
- `members` stores a display name and last-seen timestamp per chat so leaderboards and /quiet can show who's who.
- Data is retained 14 days on the free tier and 90 days on Pro, then cleaned up automatically; /reset (admins only) wipes a group's data immediately.
WhenIsItBot
- Each member's saved timezone and preset zones are stored under their user id; named /team sets are stored per group for Pro.
- No message content is stored — only zone names/offsets you explicitly save with /tz, /preset, or /team.
- Daylight saving offsets are computed live via the JavaScript Intl API rather than stored, so they're never stale.
BirthdayReminderProBot
- Each member's birthday is stored per group as day and month, plus an optional year if you choose to include one — nothing is stored beyond what you send with /bday.
- A birthday saved in one group is not shared with any other group the bot is in; run /forgetme in a group to remove your saved birthday from it.
- The day-before DM reminder (Pro) only reaches members who have started a private chat with the bot; it never messages someone the bot can't already DM.
CountdownDaysBot
- Each group's countdowns are stored per chat: target date, label, creator id, and the message id being edited — no personal data beyond who created it.
- Ending a countdown marks it stopped rather than deleting the row, so the group's countdown id numbering stays consistent.
- The bot only edits the one message it posted for each countdown; it doesn't read or store any other group messages.
AsyncStandupBot
- Your DM answers to the 3 standup questions are stored per group, per member, per day, and are shown in that group's compiled report — they are not shared with any other group the bot is in.
- Members who haven't started a private chat with the bot can't be DMed and are skipped from that day's round automatically.
- Free groups keep only today's report; Pro groups keep 30 days of report history, after which older reports are cleaned up automatically.
WordADayLearnBot
- Each word's review schedule (last answer, next-due date, an interval index) is stored per user, per word, so the SM-2-lite spacing can decide when that word comes back.
- Your Know/Don't know taps are only used to update that schedule — no answer text or free-form input is stored, since the interaction is button-only.
- Custom words added with /add (Pro) are stored per user, up to 500, and are never shared with other users.
FocusTimerProBot
- The bot stores each completed session's length in minutes, per user, per day, to build your daily total and streak — it doesn't know what you actually worked on, only how long the timer ran.
- Group "study together" sessions store who joined a given session so the end-of-session summary can name them; that membership isn't kept beyond the summary.
- Stopping a timer early (the ⏹ button on the session card) logs only the minutes actually completed, not the originally requested length.
BudgetLogBot
- Each expense you log — amount and the note text you sent — is stored per user, so /today, /week, /month, and /export can total and list them back to you.
- The category is guessed from keywords in your note and stored alongside the expense; it's only ever used to build your own totals.
- This is a DM-only bot — nothing you log is posted to a group or visible to anyone but you.
TimeSheetProBot
- Each time entry — duration, client name, and any task note from /log — is stored per user, so /week, /month, and /invoice can total and list them back to you.
- A running /in clock is stored as an open entry with its start time until you /out; if you stay clocked in past 10 hours, the bot DMs you a reminder to close it out.
- This is a DM-only bot — client names and task notes aren't shared or posted anywhere beyond your own totals.
IcebreakerDailyBot
- The bot stores which question it posted to each group and when (`posted`), so it can avoid repeats and know when the next day's question is due.
- Reply counts per posted question are stored per group, along with each responder's user id and display name and the posted question text — used to show the group its own engagement and, for Pro, to build the end-of-day digest.
- The bot never reads or stores what a member actually writes in their reply — only that they replied.
SantaDrawProBot
- Participants, their drawn match, and any wishlist text sent with /wish are stored per exchange, per group, so matches can be delivered and wishlists forwarded to the right Santa.
- This data is kept until the exchange date plus 30 days, then deleted automatically; the organizer can also run /santa end to remove it sooner.
- Matches are only ever sent privately by DM to each participant — the group chat never sees who has who, and only members who've started a private chat with the bot can be matched.
TriviaDailyProBot
- The bot stores each member's correct-answer counts and current/best streak per group (`answers`, `members`), read from Telegram's own quiz poll results, to build /leaderboard and streak badges.
- The weekly leaderboard reads a rolling range of recent answers; Pro's champion post covers a roughly 28-day window from an internal day counter, not a calendar month.
- No answer content beyond Telegram's own poll results is stored — the bot doesn't see or keep anything members type outside of tapping a poll option.
TickMyPriceBot
- The bot stores your watchlist coins and your alert lines (coin, direction, target price) per user, so it can answer /watchlist and check alerts.
- When an alert fires it is marked as sent and removed — the bot messages you once per alert, never repeatedly.
- Prices come from the CoinGecko public API and are cached for a minute; no wallet addresses or balances are ever requested.
MyHoldFolioBot
- The bot stores only what you log: coin symbols, quantities, and optional cost prices, keyed to your user id.
- In groups the bot stores nothing for /folio — it tells you to DM it — and /val prices what you ask without saving it.
- No wallet addresses, keys, or exchange connections are ever requested: you type what you hold and the bot prices it.